2012-03-30 100 views
0

可能重複:
How to 「flatten」 a multi-dimensional array to simple one in PHP?在PHP創建數組函數內數組數值數組

如何建立內部數組值與陣列功能的陣列?

這裏是陣列

Array 
(
    [0] => Array 
    (
     [Detail] => Array 
     (
      [detail_id] => 1 
     ) 

    ) 

    [1] => Array 
    (
     [Detail] => Array 
     (
      [detail_id] => 4 
     ) 

    ) 

) 

我想創建一個以上陣列的detail_id數組即

array(1, 4) 

是它做在PHP中的任何陣列功能?

+0

我認爲所有的數組函數對於一維數組很有用。 – 2012-03-30 05:29:26

回答

0

我要尋找的答案是這樣

$result = array_map(function($a) { 
    return $a['Detail']['detail_id']; }, $mainArray 
); 

這工作正確的..

1

沒有任何一個功能可以做到這一點。 array_map是最接近的,但它並不真正處理額外的遞歸級別。你爲什麼不使用循環?

$new_array = array(); 

foreach($main_array as $key => $second_array) 
{ 
    foreach($second_array as $second_key => $third_array) 
    { 
     $new_array[] = $third_array['detail_id']; 
    } 
} 

echo implode(',',$new_array); 
0

如果您正在尋找一個班輪:

$val = array(
    array('Detail' => array('detail_id' => 1)), 
    array('Detail' => array('detail_id' => 4)), 
); 

var_dump($val);