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 に答える