2014-09-11 80 views
0

所以我正在嘗試做以下工作。 我有一個包含12個數字(月)的數組。PHP推在多維數組的末尾

$array = array(); 
$array[1] = array(); 

等等。

現在,我想數字推到第二位像 $陣列[5] [日應該在這裏被推]試圖像這樣

$counter = 0; 
while($counter <= $elements) 
{ 
if($something == $something) 
{ 
    $startfrom = 14; //example 
    $month = 5; //example 
    while($startfrom <= 20) 
    { 
    array_push($array[$month], $startfrom); 
    $startfrom ++; 
    } 
} 

但它總是返回錯誤。這 致命錯誤,如:用盡134217728個字節允許內存大小(試圖分配36個字節)F:\ XAMPP \ htdocs中\ NEWPASSWORD \ Testt \ process_info.php第27行

我想實現的是,每一天都會回到它的迴應月份。

謝謝。

編輯: Nwm,固定我做了最大的菜鳥錯誤,我可以。我沒有增加計數器,如果陳述...謝謝你APerson。

+5

您是否在外循環中增加'$ counter'? – APerson 2014-09-11 13:20:25

+0

聖靈啊,這個錯誤。我真的是白癡。哦,上帝哈哈。 謝謝你的答案,這修復了它....我仍然不能相信我錯過了這一點。 – Shame123 2014-09-11 13:21:47

回答

0

應該是:

$counter = 0; 
while($counter <= $elements) 
{ 
    if($something == $something) 
    { 
     $startfrom = 14; //example 
     $month = 5; //example 
     while($startfrom <= 20) 
     { 
      array_push($array[$month], $startfrom); 
      $startfrom ++; 
     } 
    $counter++; 
} 
0

我會在你的引用代碼首先指出,沒有跡象顯示最外面的while循環永遠終止(或者甚至爲此事正常關閉;)這樣假設無限遞歸實際上不是不是PHP的內存泄漏源,我會鼓勵你先:

  1. 搶了堅實的調試器像Xdebug,或者(如果您已經將錢)PHPEd,使您可以概要你的腳本並獲取有關您的代碼或php設置中可能存在的任何問題的詳細信息。

  2. 如果您可以通過調試確認您的腳本沒有可識別的問題(但幾乎總是肯定是問題),那麼您可以簡單地在php.ini文件中增加memory_limit。我會厭倦高高在上。如果你不得不超過512M,那麼有些事情是嚴重錯誤的。