NSArray';s valueForKey:PHP中的等效值
在Objective-C中有NSArray';s valueForKey:PHP中的等效值,php,objective-c,arrays,nsarray,Php,Objective C,Arrays,Nsarray,在Objective-C中有-[NSArray valueForKey:。但是php中的等价物是什么?我想要这样的东西: $things = [['name' => 'Frank', 'age' => 14],'name' => 'bob',['name' => 'Joe', 'age' => '85']]; $names = valueForKey($things, 'name'); 我希望$names等于: $names = ['Frank', 'Bob',
-[NSArray valueForKey:
。但是php中的等价物是什么?我想要这样的东西:
$things = [['name' => 'Frank', 'age' => 14],'name' => 'bob',['name' => 'Joe', 'age' => '85']];
$names = valueForKey($things, 'name');
我希望$names
等于:
$names = ['Frank', 'Bob', 'Joe'];
我该怎么做
$things = array(array('name' => 'Frank', 'age' => 14),array('name' => 'bob'),array('name' => 'Joe', 'age' => '85'));
$names = array();
foreach ($things as $item) {
foreach ($item as $key => $value) {
if ($key == "name") {
$names[] = $value;
}
}
}
print_r($names);
结果:
Array
(
[0] => Frank
[1] => bob
[2] => Joe
)
Array
(
[0] => Frank
[1] => bob
[2] => Joe
)
递归解决方案:
使用array\u walk\u recursive
witch为数组中的每个元素执行回调函数
function callback($item, $key){
if ($key == "name") $names[] = $item;
}
array_walk_recursive($things, 'callback');
print_r($names);
结果:
Array
(
[0] => Frank
[1] => bob
[2] => Joe
)
Array
(
[0] => Frank
[1] => bob
[2] => Joe
)
好的,谢谢,但是有没有一种方法可以使它递归,而不仅仅是两层?