나는 내 머리를 얻을 수없는 뭔가가 있습니다.Foreach는 하나의 항목을 많이 반환합니다.
foreach 루프를 사용하여 배열을 처리하고 있습니다. 배열에는 3 개의 항목이 있습니다. 나는 다른 배열로 다시 저장되는 이러한 항목으로 몇 가지 작업을 수행합니다. foreach 루프 후에 배열에 4 개가 아닌 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 루프 내에서 SIZEOF ($ newArrWithItems)를 에코 때, 그것은 0으로 시작하고, 2와 3은 그래서 건너와 더 나아가이다 그러나 count ($ i)는 한 걸음 씩 건너 뛰지 않습니다.
내가 여기에 무엇을 놓치고 ... 또는 거기에 더 많은 팁을 howto 디버그가 있습니까? 나는 $ arrWithItems을 var_dump로 이미 검사했는데, 0부터 2까지의 3 개의 항목 만 표시합니다.이 결과 집합에서만 문제가 발생하지는 않지만이 foreach 루프에서 처리되는 모든 배열에 하나의 항목이 추가됩니다 .
: 그 배열 인 경우, 여기에 간단한 예제입니다 코드의이 부분에 도달하기 전에 완전히 관련성이 없습니다. –
아마도 코드에서 $ item을 사용하여 물건을 다룰 것입니다. 코드의 해당 부분에서'$ i' 또는'$ arrWithItems'이 사용됩니까? – RichardBernards
는'var_dump ($ newArrWithItems)'을 시도 했습니까? 여분의 요소는 무엇입니까? –