PHP推送到多维数组的末尾

时间:2014-09-11 13:18:36

标签: php arrays multidimensional-array array-push

所以我想尝试做以下事情。 我有一个包含12个数字(数月)的数组。

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

等等。

现在,我正试图把数字推到第二位 $ array [5] [day应该推到这里]试试这样

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

但它总是会返回一个错误。像这样  致命错误:第27行的F:\ xampp \ htdocs \ NewPassword \ Testt \ process_info.php中允许的内存大小为134217728个字节(试图分配36个字节)

我想要达到的目标是每一天都会回到应对的月份。

感谢。

编辑: Nwm,修复我做了最大的菜鸟错误。我没有从if语句递增反击......谢谢APerson。

2 个答案:

答案 0 :(得分: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++;
}

答案 1 :(得分:0)

我首先要在你的引用代码中指出,没有迹象表明最外面的while循环被终止(或者甚至正确地关闭了这个问题;)所以假设无限递归实际上并不存在不是PHP内存泄漏的来源,我首先鼓励你:

  1. 获得一个像Xdebug这样的可靠调试器,或者(如果你有钱)PHPEd,这样你就可以编写脚本并获得有关任何问题的详细信息。在你的代码或php设置中。

  2. 如果您可以通过调试确认您的脚本没有可识别的问题(这几乎总是确定问题),那么您只需增加memory_limit即可。 php.ini个文件。我厌倦了在这里走高。如果你必须超过512M,那么就会出现严重错误。