我使用此代码在数组内创建数组。将项目添加到嵌套数组
array_push($lists, $list);
然后我尝试将项目添加到嵌套的数组:
array_push($lists[$list], $item);
但得到一个错误:
Warning: array_push() expects parameter 1 to be array, null given in V:\home\..
。
$list
是某个名字,$item
是一个对象。
如何解决这个问题?
我使用此代码在数组内创建数组。将项目添加到嵌套数组
array_push($lists, $list);
然后我尝试将项目添加到嵌套的数组:
array_push($lists[$list], $item);
但得到一个错误:
Warning: array_push() expects parameter 1 to be array, null given in V:\home\..
。
$list
是某个名字,$item
是一个对象。
如何解决这个问题?
这是因为第一个参数为空。假设你正在使用默认的索引,你可以这样做:
$numItems = array_push($lists,$list);
array_push($lists[$numItems-1],$item)
这在$lists
末端推$list
,并赋予它一个整数键:
array_push($lists, $list);
这试图访问字符串键成$lists
,这不存在:
$lists[$list]
所以返回值是null
。最后,就好像你没有
array_push(null, $item);
对于一个解决方案,我们需要知道,如果你是在$lists
除了推到它做任何事情。如果你不是,那么:
$pushed_id = array_push($lists, $list) - 1;
array_push($lists[$pushed_id], $item);
任何其他解决方案?两个array_push被放置在不同的函数中,并与foreach一起使用。所以我不能以这种方式使用$ numItems。 – James 2011-03-25 01:48:01
如果你不关心索引,你可以使用:'$ list [] = $ item;'然后'$ lists [] = $ list'。但是我不确定你在没有更多信息的情况下试图完成什么。 – 2011-03-25 16:17:50