0

我在工作中多次遇到这种情况,需要从数组中获取具有特定键的子数组。今天我想让它有更好的表现,所以我的问题是哪个是更好的选择:

示例选项 1:

$where_requires = array('group_id', 'name');
$item = array('group_id' => 2, 'name' => 'Bob', 'age' => 37);

$where = array_diff_key($item, array_diff_key($item, array_fill_keys($where_requires, '')));

示例选项 2

$where = array();
foreach($where_requires as $require){
    $where[$require] = $item[$require];
}

请记住,$where 和 $where_require 都是一个大数组,大约有数百个元素。我的机器上的时间成本没有明显的区别,你能给我一些建议吗?更好地解释为什么。感谢所有注意到我的问题的人。

4

1 回答 1

3

尝试:

$where = array_intersect_key($item, array_flip($where_requires));
于 2013-09-06T09:45:16.297 回答