数组似乎放弃了第一个元素

时间:2013-12-25 07:40:52

标签: php arrays multidimensional-array

我向数据库发出请求并从中获取以下数据:

  

array(5){[0] => object(stdClass)#39(3){[“route_id”] => string(4)“1103”[“route_date”] => string(10)“2013-12-24”[“truck_id”] => string(1)“0”} [1] => object(stdClass)#38(3){[“route_id”] => string(4)“1104”[“route_date”] => string(10)“2013-12-25”[“truck_id”] => string(1)“0”} [2] => object(stdClass)#37(3){[“route_id”] => string(4)“1468”[“route_date”] => string(10)“2013-12-25”[“truck_id”] => string(1)“0”} [3] => object(stdClass)#36(3){[“route_id”] => string(4)“1469”[“route_date”] => string(10)“2013-12-25”[“truck_id”] => string(1)“0”} [4] => object(stdClass)#35(3){[“route_id”] => string(4)“1105”[“route_date”] => string(10)“2013-12-26”[“truck_id”] => string(1)“0”}}

从那里,我想使用以下代码将数据重新排列为多维数组:

$i = 0; 
$j = 0;
foreach($routes_array as $key => $route)
        {
            if($route->route_date === $routes_array[$key + 1]->route_date)
            {
                var_dump($route); 
                echo("<br/>");
                $day[$i][$j] = $route;
                echo("assigning rought to i:".$i." j: ".$j);
                echo("<br/>");
                $j++; 
            }
            else
            {
                var_dump($route); 
                echo("<br/>");
                $day[$i][$j] = $route;
                echo("assigning rought to i:".$i." j: ".$j);
                echo("<br/>");
                $i++;
                $j = 0; 
            }
        }
        echo("<br/>");
        var_dump($day); 

上面代码中echo的输出是:

  

object(stdClass)#39(3){[“route_id”] =&gt; string(4)“1103”[“route_date”] =&gt; string(10)“2013-12-24”[“truck_id”] =&gt; string(1)“0”}   分配到i:0 j:0

     

object(stdClass)#38(3){[“route_id”] =&gt; string(4)“1104”[“route_date”] =&gt; string(10)“2013-12-25”[“truck_id”] =&gt; string(1)“0”}   分配到i:1 j:0

     

object(stdClass)#37(3){[“route_id”] =&gt; string(4)“1468”[“route_date”] =&gt; string(10)“2013-12-25”[“truck_id”] =&gt; string(1)“0”}   分配到i:1 j:1

     

object(stdClass)#36(3){[“route_id”] =&gt; string(4)“1469”[“route_date”] =&gt; string(10)“2013-12-25”[“truck_id”] =&gt; string(1)“0”}   分配到i:1 j:2

     

object(stdClass)#35(3){[“route_id”] =&gt; string(4)“1105”[“route_date”] =&gt; string(10)“2013-12-26”[“truck_id”] =&gt; string(1)“0”}   分配到i:2 j:0

问题是当我做最后一次var_dump我得到了这个:

  

array(3){[0] =&gt; int(2)[1] =&gt; array(3){[0] =&gt; object(stdClass)#38(3){[“route_id”] =&gt; string(4)“1104”[“route_date”] =&gt; string(10)“2013-12-25”[“truck_id”] =&gt; string(1)“0”} [1] =&gt; object(stdClass)#37(3){[“route_id”] =&gt; string(4)“1468”[“route_date”] =&gt; string(10)“2013-12-25”[“truck_id”] =&gt; string(1)“0”} [2] =&gt; object(stdClass)#36(3){[“route_id”] =&gt; string(4)“1469”[“route_date”] =&gt; string(10)“2013-12-25”[“truck_id”] =&gt; string(1)“0”}} [2] =&gt; array(1){[0] =&gt; object(stdClass)#35(3){[“route_id”] =&gt; string(4)“1105”[“route_date”] =&gt; string(10)“2013-12-26”[“truck_id”] =&gt; string(1)“0”}}}

您会注意到第一个元素[0][0]没有第一个对象。

我的代码出了什么问题?

1 个答案:

答案 0 :(得分:0)

foreach 循环的每次迭代之后(在关闭 foreach 循环的括号之前)检测错误添加var_dump($ day)