Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NSArray';s valueForKey:PHP中的等效值_Php_Objective C_Arrays_Nsarray - Fatal编程技术网

NSArray';s valueForKey:PHP中的等效值

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',

在Objective-C中有
-[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
)

好的,谢谢,但是有没有一种方法可以使它递归,而不仅仅是两层?