【发布时间】:2021-12-28 18:15:06
【问题描述】:
我试图通过第二个数组值过滤第一个数组。例如,我可能想过滤每个年龄为 22、25、35、40 的人。我将这些值存储在 $2 中
$a1 = array(['name' => 'mike',
'age' => 18],
['name' => 'james',
'age' => 22],
['name' => 'sarah',
'age' => 35],
['name' => 'ken',
'age' => 29],);
$a2 = array(22, 25 , 35 , 40);
$results = array_intersect($a2, $a1['age']);
var_dump($results) ;
这个数组应该返回 22、35,因为它只找到了 2 个与 $a2 中的年龄匹配
array(['name' => 'james',
'age' => 22],
['name' => 'sarah',
'age' => 35]);
【问题讨论】:
-
使用array_filter
-
我试过了,怎么样?
-
array_filter($a1, function($x) use($a2) { return in_array($x["age"], $a2); }; -
干得好。就像魔术一样...希望我可以将其标记为已解决,谢谢