我有東西,我不能讓我的頭:Foreach返回一個項目到很多
我正在處理一個數組與foreach循環。該數組有3個項目。我做了一些這些項目的東西,這些東西存儲回不同的陣列。在foreach循環之後,我沒有3個,但有4個項目在數組中...我用var_dump和print_r檢查過程的每個部分,以檢查是否有導致此行爲的「隱藏」項目,但找不到它。
查詢的結果變成數組,結果集爲3行。下面是代碼示例:
echo sizeOf($arrWithItems); //returns 3
$i=0;
$newArrWithItems = array();
foreach($arrWithItems as $item){
$i++; //add one to the counter (only for testing)
// do stuff with $item for example:
$newArrWithItems[$item->id]['name'] = $item->name;
}
echo sizeOf($newArrWithItems) //returns 4
echo $i //returns 3
奇怪的是,當我在foreach循環內回聲整型尺寸($ newArrWithItems),它從0開始,用2和3所以它跳過更進一步但是,伯爵($ i)並沒有跳過一步。
我在這裏想念什麼......或者有沒有什麼提示如何進一步調試?我已經使用var_dump檢查了$ arrWithItems,它只顯示3個項目,很好地從0到2的數字。問題不僅僅出現在這個結果集中,而是它將一個項目添加到在此foreach循環中處理的所有數組中。
你似乎並不在你的代碼將被初始化'$ newArrWithItems',因此沒有設想可以看 - 我們都知道,它的東西在完成這部分代碼之前完全不相關。 – 2014-12-04 13:00:45
它可能取決於'//在你的代碼中使用$ item來做東西......在代碼的那一部分,使用'$ i'還是'$ arrWithItems'? – RichardBernards 2014-12-04 13:01:11
試過'var_dump($ newArrWithItems)'?什麼是額外的元素? – 2014-12-04 13:03:12