2012-06-03 4 views
1

내 스크립트에서 다음 배열을 반환했습니다.다차원 배열을 일차원 배열로 변환하는 방법?

Array 
(
    [0] => 67 

    [1] => 68 

    [2] => 69 

    [3] => 70 
) 

내가 반환 된 ID가에만 관심이 있어요 :

Array 
(
    [0] => Array 
     (
      [id] => 67 
     ) 

    [1] => Array 
     (
      [id] => 68 
     ) 

    [2] => Array 
     (
      [id] => 69 
     ) 

    [3] => Array 
     (
      [id] => 70 
     ) 

) 

어떻게로 변환 할 수 있습니다.

답변

3

array_map()은 콜백에서 반환 된 값을 반환 된 배열에 누적하므로 하나의 가능성이 있습니다. 콜백은 단지 id 반환해야합니다 : 그것은 익명 함수를 사용하기 때문에,

$flat = array_map(function($a) {return $a['id'];}, $orig_array); 

는 PHP 5.3+ 필요로 위의,하지만 같은 array_map()에 문자열로 전달 명명 된 기능을 달성 할 수있다.

그렇지 않으면 foreach 루프가 매우 일반적인 것이므로 원래의 키를 비 순차적으로 유지할 수 있습니다.

$flat = array(); 
foreach ($orig_array as $key => $a) { 
    $flat[$key] = $a['id']; 
} 
+0

wtb'array_pluck()' – goat

+0

@chris [내장 된'array_pluck()'] (http://us2.php.net/manual/en/ref.array.php) tmk가 없습니다. 그 (것)들을 만드는 방법에 많은보기. –

1
$temp = call_user_func_array('array_merge_recursive', $arr); 
$final = $temp['id']; 
print_r($final); 

은 까다 롭습니다. 솔직히 foreach 루프를 사용하십시오.

function format(&$item, $key) { 
    $item = $item["id"]; 
} 

array_walk($arr, "format"); 

또는 람다 함수와 하나 개의 라인 :

그것은 직접 어레이와 함께 작동
array_walk($arr, create_function('&$item, $key', '$item = $item["id"];')); 

, 따라서 우리가 쉽게 호출 할 수 있습니다 "

관련 문제