我正在寻找一种更有效的方法来执行以下操作,但优先没有for / while循环。
$contacts_needed = array('tom','joe');
$all_contacts = array(
'tom' => array('age'=>20, 'sex'=>'m'),
'jack' => array('age'=>33, 'sex'=>'f'),
'rob' => array('age'=>33, 'sex'=>'m'),
'joe' => array('age'=>33, 'sex'=>'m'),
'jill' => array('age'=>20, 'sex'=>'f'),
);
$contacts = array();
foreach ($contacts_needed as $contacts_name) {
$contacts[$contacts_name] = in_array($contacts_name,$all_contacts) ? $all_contacts[$contacts_name] : array();
}
有没有这样做的功能? e.g
$contacts = array_functionname($contacts_needed, $all_contacts);
//array_in_array(needles, haystack);
如果没有更有效的方法吗?
答案 0 :(得分:2)
$contacts
Array
(
[tom] => Array
(
[age] => 20
[sex] => m
)
[joe] => Array
(
[age] => 33
[sex] => m
)
)
现在持有
{{1}}
答案 1 :(得分:1)
最简单的解决方案是:
array_intersect_key($arrayToFilter, array_flip($simpleArrayOfKeys))
您可以在PHP网站上看到详细示例:http://php.net/manual/fr/function.array-intersect-key.php#109706