질문이상한 행동
왜 "l++;"
으로 라인이 foreach 루프의 루프 카운트 영향을 미치고? 그 라인은 단순히 카운터로 존재하지만 어떻게 든 최종 결과에 영향을 미치고 있습니다.
누군가 여기서 무슨 일이 일어나는지 설명해 주실 수 있습니까?
하는 코드
나는 다음과 같은 다차원 배열이 : 나는 배열을 통해 루프에 다음 코드를 사용하고
$team_array = array(
array(68, 6, 0, 10, "1.000"),
array(72, 6, 0, 10, "1.000"),
array(65, 6, 0, 8, "1.000"),
array(62, 6, 0, 4, "1.000"),
array(54, 3, 3, 3, ".500"),
array(55, 3, 3, -5, ".500"),
array(59, 0, 6, -16, ".000")
);
합니다.
$foo = "1.000";
$k = 0;
$l = 0;
$m = 0;
$n = 0;
foreach($team_array as $index => $inner_arr)
{
foreach($inner_arr as $value)
//echo $value.", ";
//echo "<br/>";
$l++;
{
$m++;
echo "index - $index<br>";
echo "perc = ".$team_array[$index][4]."<br>";
if ($team_array[$index][4] == $foo)
{
$tie_tm[] = $team_array[$index][0];
$n++;
}
}
$k++;
}
echo "k - $k<br>";
echo "l - $l<br>";
echo "m - $m<br>";
echo "n - $n<br>";
echo "<pre>";
print_r($tie_tm);
이상한 (나에게) 동작을 표시 할 때 디버깅 비트가 남아 있습니다. 특히, 내가 "l++;"
줄을 주석 경우 내가 기대했던 것보다 더 많은 루프를 얻을. "l++;"
라인없이이 코드를 실행하면 저에게이 줄 : 그와
k - 7
l - 0
m - 35
n - 20
Array
(
[0] => 68
[1] => 68
[2] => 68
[3] => 68
[4] => 68
[5] => 72
[6] => 72
[7] => 72
[8] => 72
[9] => 72
[10] => 65
[11] => 65
[12] => 65
[13] => 65
[14] => 65
[15] => 62
[16] => 62
[17] => 62
[18] => 62
[19] => 62
)
은에서 왼쪽, 내가 얻을 :
k - 7
l - 35
m - 7
n - 4
Array
(
[0] => 68
[1] => 72
[2] => 65
[3] => 62
)
이 내가 원하는 예상 결과입니다.
마지막으로 배열에 4 개의 요소가 포함 된 최종 결과를 얻고 싶습니다. 디버깅 비트를 제거하고 싶지만 최종 결과를 유지하려면이 코드를 어떻게 변경해야하는지 이해해야합니다.
미리 감사드립니다.
'$ foo' 란 무엇입니까? –
'foreach ($ inner_arr as $ value) $ l ++; {...}'이것은 거의 틀림없이 오타입니다. 아마도 foreach ($ inner_arr를 $ value) {$ l ++; ...}' –