2011-04-28 233 views
2

我有一個陣列,其看起來像這樣:PHP array_push() - 推新數據到陣列

Array 
(
    [0] => Array 
     (
      [1] => Array 
       (
        [name] => vrij 
        // ... 
       ) 

      [2] => Array 
       (
        [name] => zat 
        // ... 
       ) 
     ) 
) 

我建立使用該陣列的for循環;然而,我需要再向陣列中推送4個'記錄',在這個循環中我不能這樣做。

我想要的陣列看起來像這樣,在推後:

Array 
(  
    [0] => Array 
    (
     [1] => Array 
      (
       [name] => vrij 
       // ... 
      ) 

     [2] => Array 
      (
       [name] => zat 
       // ... 
      ) 
     // ... 
    ) 
    [1] => Array 
    ( 
      [1] => Array 
       (
       [name] => zon 
       //... 
      ) 
      [2] // etc 
    ) 
) 

四個新的記錄應該推到數組[1],所以我得到的東西像

$array[1][0], $array[1][1], etc. 0 1 2 3 contains the new data. 

我嘗試了很多東西,說實話。我需要做的這些推四個人,因此我試圖for循環:

for($i = 0; $i < 4; $i++) 
    { 
     $day_info = $this->get_day_info($i, $data['init']['next_month'], $data['init']['current_year']); 
     $push['name'] = $day_info['day_name']; 
     array_push($data['dates'], $push); 
    } 

和所有其他種類的事情[],[1] [$ i],等等。有時它甚至增加了5個陣列!我很困惑,爲什麼它不會只添加[1] [1],[1] [2],..我可能錯過了這裏的東西。非常感謝。

如果不清楚,請告訴我,我會添加更多代碼來更好地解釋問題。

+0

你想要什麼最終陣列的樣子? – PeeHaa 2011-04-28 17:48:51

+0

第二個代碼塊有我想要它看起來像:)雖然也許這不是很清楚。我會很快編輯! – cabaret 2011-04-28 17:50:00

+0

'嗨。我有一個看起來像這樣的數組......'你的第一個數組看起來很奇怪:它是三重嵌套的數組,因此,例如,你可以寫'$ x [0] [1] ['name']'到得到'vrij'。你確定這是正確的嗎?我敢打賭它不是。 – leonbloy 2011-04-28 17:50:52

回答

2
$extradates = array(1 => 'zon', 2 => 'maa'); 
$data['dates'][] = $extradates; 

將使用新索引向數組添加2個額外的日期。

雖然如果我看到你想要完成什麼,我認爲可能有更好的方法。

這上面的作品雖然:)

+0

謝謝。我只是將數據放入一個數組中,並使用類似於第二行的東西將它添加到我的$ data ['dates']數組中。應該遠離那個我猜想的array_push()事物;這樣更容易。我的老師告訴我使用array_push()但是meh。謝謝! – cabaret 2011-04-28 18:01:01

+0

@cabaret:告訴你以下老師:大部分時間(總是???)array_push()比較慢。因爲函數調用總是比較慢,並且在array_push之上需要混合參數,這也會使其變慢。還要注意$ array []看起來更清潔,並且更易於鍵入:)並且yw ofc :) – PeeHaa 2011-04-28 18:09:19