鉴于此数组和名称(例如'def'),如何获取包含数组或键?
$all = array(
'0' => array(
'name' => 'abc'
'option' => 1,
),
'1' => array(
'name' => 'def'
'option' => 1,
),
'2' => array(
'name' => 'ghi'
'option' => 0,
),
);
给定'def'返回此数组的最佳方法是什么?
$single = array(
'name' => 'def'
'option' => 1,
);
我可以这样做:
$single = array();
foreach ($all as $key => $value) {
if ($value['name'] == 'def') {
$single = $all[$key];
}
}
或者预渲染数组中的键,使其看起来像这样:
$all = array(
'abc' => array(
'name' => 'abc'
'option' => 1,
),
'def' => array(
'name' => 'def'
'option' => 1,
),
'ghi' => array(
'name' => 'ghi'
'option' => 0,
),
);
$single = $all['def'];
但我想知道是否有更短的PHP功能。
答案 0 :(得分:4)
您可以使用array_filter:
array_filter($array, function($var){
return $var["name"] == "def";
});