1

给定这个数组和一个名称(例如'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 函数。

4

1 回答 1

4

你可以使用array_filter

array_filter($array, function($var){
   return $var["name"] == "def";
});
于 2013-01-18T01:03:56.517 回答