哪个是从阵列中获取具有特定键和值的子数组的更好选项?

时间:2013-09-06 09:43:09

标签: php arrays

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

示例选项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都是一个大数组,大约有数百个元素。我机器的计时成本没有明显区别,你能给我一些建议吗?更好地解释原因。感谢所有注意到我的问题的人。

1 个答案:

答案 0 :(得分:3)

尝试:

$where = array_intersect_key($item, array_flip($where_requires));