2014-06-07 3 views
0

Objective-C의 경우 -[NSArray valueForKey:]입니다. 하지만 PHP에서 이에 상응하는 것은 무엇입니까? 이 동일하게NSArray의 valueForKey : PHP의 해당 항목

$things = [['name' => 'Frank', 'age' => 14],'name' => 'bob',['name' => 'Joe', 'age' => '85']]; 
$names = valueForKey($things, 'name'); 

내가 좋아하는 것 $names : 나는 이런 식으로 뭔가를하고 싶은

$names = ['Frank', 'Bob', 'Joe']; 

내가 어떻게 할 수 있습니까?

답변

1
$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); 

RESULT :

Array 
(
    [0] => Frank 
    [1] => bob 
    [2] => Joe 
) 

RECURSIVE SOLUTION : array_walk_recursive 마녀 사용 배열 내의 각 요소를위한 콜백 함수를 실행한다.

function callback($item, $key){ 
    if ($key == "name") $names[] = $item; 
} 
array_walk_recursive($things, 'callback'); 

print_r($names); 

결과 :

Array 
(
    [0] => Frank 
    [1] => bob 
    [2] => Joe 
) 
+0

좋아 감사하지만 재귀 만 2 수준 깊은되지 만들 수있는 방법이? –

+0

답변이 업데이트되었습니다. – Cristian

+0

괜찮습니다. –