PHP 배열 순회에 대해 이야기해 봅시다. 많은 사람들이 배열 순회에 대해 뭐라고 말할 수 있을까요? 실제로 for 루프 순회는 PHP 배열이 아닙니다. 최악의 PHP 코드입니다. 아래에서 자세히 비교하고 분석해 보세요.
우리 모두는 C++과 C#이 배열을 정의할 때 스택 영역의 연속적인 고정 크기 메모리 공간을 배열 변수에 할당한다는 것을 알고 있습니다. C++에서는 일반적으로 배열을 순회하기 위해 오프셋을 증가시키기 위해 for 루프를 사용합니다. for 루프 외에도 C#에서도 foreach를 사용하여 순회할 수 있습니다. PHP는 어떻습니까? ? 다음 코드를 자주 볼 수 있습니다.
<?php $arr = array( 0=>"zxp", 1=>"male", 2=>"北京西三旗" ); for($i=0;$i<count($arr);$i++) { echo $arr[$i]; } ?>
이러한 유형의 코드는 당분간은 괜찮지만 내결함성이 매우 낮고 견고성이 매우 낮습니다. 실수로 오류가 발생할 수 있습니다. PHP 배열은 연속 메모리 공간이 아니며 연속 오프셋을 사용하여 배열을 이동할 수 없으며 PHP 배열은 확장 가능합니다. 예를 들어 위 코드 $arr가 $arr[5]=5 요소를 삽입하는 경우 for 루프는 다음과 같습니다. 잘못되었습니다.
PHP 배열 순회는 foreach와 while을 사용합니다.
<?php $arr = array( //"comment"=>"personal information", 0=>"zxp", 1=>"male", "age"=>29, 2=>"北京西三旗" ); $arr[4] = "高级开发工程师"; foreach ($arr as $key => $value) { echo $key.':'.$value.'</br>'; } ?>
위 코드에서와 같이 순회는 foreach로 전달되고 순회된 배열은 다음과 같습니다. 요소와 키는 $key에 이름이 할당되고 $value에 값이 할당됩니다.
<?php $arr = array( 0=>"zxp", 1=>"male", "age"=>29, 2=>"北京西三旗" ); reset($arr); while (list($key,$value) = each($arr)) { echo $key.':'.$value.'</br>'; } ?>
위 코드와 같이 배열 순회는 각 함수에 넘겨집니다. while 루프와 목록 작업 및 각 함수를 사용하여 PHP 배열을 순회할 때 주의해야 합니다. while 루프 전에 배열 포인터가 첫 번째 요소를 가리키도록 재설정 함수를 호출하세요. 통과한 요소로는 충분하지 않습니다.