我使用此代碼在數組內創建數組。將項目添加到嵌套數組
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