2015-09-24 95 views
-4

我有以下的陣列,我要重新安排PHP多維數組清理

Array 
(
    [0] => stdClass Object 
     (
      [feeds_id] => 1338 
      [flag] => 0 
     ) 

    [1] => stdClass Object 
     (
      [feeds_id] => 1339 
      [flag] => 0 
     ) 

    [2] => stdClass Object 
     (
      [feeds_id] => 1339 
      [flag] => 1 
     ) 

) 

我想安排它看起來像這樣

[1338] => Array ( 
      [0] => 0 
      ) 
[1339] => Array ( 
      [0] => 0 
      [1] => 1 
      ) 
+0

Have你嘗試過什麼? – Rizier123

+1

我建議你研究Google上的「將stdClass轉換爲數組」。當你在嘗試所學知識的過程中發現問題時,你會回過頭來問一個問題。 –

+1

'foreach($ array as $ v)$ result [$ v-> feeds_id] [] = $ v-> flag;' – deceze

回答

-1

此代碼應工作:

$newArray=array(); 
foreach($items as $item){ 
    if(!is_array($newArray[$item->feeds_id])){ 
     $newArray[$item->feeds_id]=array(); 
    } 
    array_push($newArray[$item->feeds_id],$item->flag); 
} 

您應該首先創建一個空數組,用於存儲新數據。然後,在foreach裏面,你應該使用array_push,但是如果你想要放置數據的子數組不是數組,你應該首先聲明它(這就是爲什麼array_push之前的「if」)

+0

'$ newArray [$ item-> feeds_id] [] = $ item-> flag'會做得很好,並且更加簡潔。如果有什麼你應該使用'isset'而不是'is_array',否則你會得到很多通知。 – deceze

+0

謝謝@sebastianbarria和deceze。這實際上是我想要的。我仍然不明白爲什麼有這麼多的需求降低這個問題。 – user731144