我有一个像这样的数组
$result = [];
foreach ($a as $datum) {
if (in_array('2', $datum['values'])) {
$result[] = $datum;
}
}
搜索并返回'values'有2
的数组array_search('2', array_column($a, 'values'));
是的,我可以使用for循环,并使用in_array返回结果,只是想想是否有优雅(更好)的方法来做它?
imgur
我尝试了array_search,但它不支持嵌套数组
credits
答案 0 :(得分:2)
您可以使用array_filter()
和in_array()
:
$value = '2';
$result = array_filter($a, function (array $element) use ($value) {
return array_key_exists('values', $element)
&& is_array($element['values'])
&& in_array($value, $element['values'], true);
});
var_dump($result);
供参考,见:
有关示例,请参阅: