2013-10-13 92 views
0

好吧,我想弄清楚如何將數據添加到關聯數組。該陣列是這樣的:添加元素到關聯數組

Array 
(
    [games] => Array 
     [game] => Array 
      [0] => Array 
      [appID] => 12345 
      [logo] => 'http://www.example.com/logo_12345.jpg' 
      [name] => 'Game One' 
      [1] => Array 
      [appID] => 12346 
      [logo] => 'http://www.example.com/logo_12346.jpg' 
      [name] => 'Game Two' 
      [2] => Array 
      [appID] => 12347 
      [logo] => 'http://www.example.com/logo_12347.jpg' 
      [name] => 'Game Three' 
    [userID] => 784523569852145 
    [username] => 'Gamertag' 
) 

我想要做的是循環雖然陣列,並添加以下內容到它,所以它看起來像這樣:

Array 
    (
     [games] => Array 
      [game] => Array 
       [0] => Array 
       [appID] => 12345 
       [logo] => 'http://www.example.com/logo_12345.jpg' 
       [name] => 'Game One' 
       [status] => 'active' 
       [1] => Array 
       [appID] => 12346 
       [logo] => 'http://www.example.com/logo_12346.jpg' 
       [name] => 'Game Two' 
       [status] => 'active' 
       [2] => Array 
       [appID] => 12347 
       [logo] => 'http://www.example.com/logo_12347.jpg' 
       [name] => 'Game Three' 
       [status] => 'active' 
     [userID] => 784523569852145 
     [username] => 'Gamertag' 
    ) 
+2

所以澄清你:你要添加'「狀態」 =>「active''每個在'$ your_array的數字索引元素[」遊戲「] [」遊戲']' –

+0

那正是我想要的 –

回答

4

它會去是這樣的:

foreach($my_array["games"]["game"] as &$game) { 
    $game["status"] = "active"; 
} 

&是至關重要的,因爲沒有它變$game將參考相關陣列的副本,而不是該數組本身。換句話說,您的更改不會被保存。

+0

那麼我意識到我的循環有什麼問題。除了'&',我有相同的循環,並且它不工作!很高興這和我想的一樣容易,只是我的疏忽而已。謝謝! –

0

您可以在新的元素添加在那裏你需要他們只需使用方括號標識您希望將其添加並指定按正常這樣的元素:

$array['games']['game'][0]['status']='Active'; 

這不是一個循環,但我敢肯定,你可以從這裏工作,使循環本身基於你的結構。

2
$iamlazy =& the_array['games']['game']; 
$n=sizeof($iamlazy); 
for ($i=0;$i<$n;%i++) 
    $iamlazy[$i]['status']=active; 
+0

你有沒有背景C? :) – Hubro

+0

這也行得通,但是對於每一個來說都比一個更好,還是他們會差不多呢? –

+0

@ RobertE.McIntosh對於你的例子不會有什麼區別 - 對於非常非常大的數組,數值索引的for將比foreach枚舉器快幾個百分點 –