2013-10-13 2 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' –

Смежные вопросы