2014-06-17 45 views
1

我有一個大問題,因爲我不知道如何從該數組中獲取值,其中值是鍵入新數組的值。這是我的源陣列從數組中檢索值,然後將其添加到新的PHP

Array 
(
    [0] => Array 
     (
      [ID] => 250602 
      [NAME] => qwe 
     ) 

    [1] => Array 
     (
      [ID] => 250603 
      [NAME] => wer 
     ) 

    [2] => Array 
     (
      [ID] => 250629 
      [NAME] => sdf 
     ) 

    [3] => Array 
     (
      [ID] => 250629 
      [NAME] => xcv 
     ) 

    [4] => Array 
     (
      [ID] => 250629 
      [NAME] => fghfgh 
     ) 

    [5] => Array 
     (
      [ID] => 250601 
      [NAME] => pggd 
     ) 

    [6] => Array 
     (
      [ID] => 250601 
      [NAME] => dfgdfg 
     ) 

    [7] => Array 
     (
      [ID] => 250606 
      [NAME] => dfgdfg 
     ) 
) 

當ID相同,將創建一個新的表看起來像如何foreach循環這樣的id = 250629

[NAME] => Array 
     (
      [0] => sdf 
      [1] => xcv 
      [2] => fghfgh 
     ) 

回答

1

<?php 
$final_array=array(); 
foreach($arrays as $sub_arr){ //it will traverse loop for all sub-arrays 
    $final_array[$sub_arr['ID']][]=$sub_arr['NAME'];  
} 
print_r($final_array); //you should see expected output. 
?> 

將產品下面的輸出爲您給出的數據:

Array 
(
    [250602] => Array 
     (
      [0] => qwe 
     ) 

    [250603] => Array 
     (
      [0] => wer 
     ) 

    [250629] => Array 
     (
      [0] => sdf 
      [1] => xcv 
      [2] => fghfgh 
     ) 

    [250601] => Array 
     (
      [0] => pggd 
      [1] => dfgdfg 
     ) 

    [250606] => Array 
     (
      [0] => dfgdfg 
     ) 

) 

Working Demo

+1

很高興看到我的答案如何幫助你弄明白;) – georg

+0

這是一個小的誤解,然後發佈我的答案,謝謝btw :) –

1

喜歡這個

$by_name = array(); 
foreach($your_array as $item) 
    $by_name[$item['ID']] []= $item['name']; 

這使得使用PHP的懶惰數組初始化([]=創建新數組隱式)。

如果你從mysql獲得你的數組,你也可以考慮GROUP_CONCAT

+0

感謝作品,我不知道它可以如此簡單 –

相關問題