我有一个如下所示的源数组:
$data = array(
'foo' => array(
'bar' => 'foo_bar',
'baz' => 'foo_baz'
),
'fizz' => array(
'bar' => 'fizz_bar',
'baz' => 'fizz_baz'
)
);
我想通过选择一个键来创建另一个数组:bar
或baz
,它将返回具有指定键值的所有根键?
some_function($data, 'bar') == array(
'foo' => 'foo_bar',
'fizz' => 'fizz_bar'
);
是否有内置的php函数可以在不进行自己的循环的情况下生成以下结果?
答案 0 :(得分:1)
$data = array(
'foo' => array(
'bar' => 'foo_bar',
'baz' => 'foo_baz'
),
'fizz' => array(
'bar' => 'fizz_bar',
'baz' => 'fizz_baz'
)
);
选择bar
:
$result = array_combine(
array_keys($data),
array_column($data, 'bar')
);
以下是一个例子:
php > var_dump(array_combine(array_keys($data), array_column($data, 'bar')));
array(2) {
["foo"]=>
string(7) "foo_bar"
["fizz"]=>
string(8) "fizz_bar"
}
请注意,{5.5}中引入了array_column()
。