PHP 루프배열 탐색의 세 가지 메소드 list(), Each() 및 while을 요약하여 소개합니다. 이 세 가지 메소드를 혼합하여 사용하는 데 중점을 둡니다.
①each() 함수
each() 함수는 배열을 매개변수로 전달하고, 배열에 있는 현재 요소의 키/값 쌍을 반환하고, 배열 포인터를 다음 요소의 위치로 뒤로 이동해야 합니다. . 키/값 쌍은 키 0, 1, 키 및 값을 포함하는 4개 요소가 포함된 혼합 연관 및 인덱스 배열로 반환됩니다. 키 이름 0은 배열 요소의 키 이름인 키에 해당하는 값과 동일하고, 1과 값은 배열 요소의 값을 포함합니다. 내부 포인터가 배열 끝을 벗어나면 Each()는 FALSE를 반환합니다. Each() 함수의 사용법은 다음과 같습니다.
<?php $contact = array("ID" => 1,"姓名" => "高某","公司" => "A公司","地址" => "北京市",); $id = each($contact); //返回数组$contact中第一个元素的键/值对,是带有4个元素的数组 print_r($id); //输出数组$id:Array([1]=>1,[value]=>1,[0]=>ID,[key]=>ID) $name = each($contact); //返回数组$contact中的第二个元素的键/值对,是带有4个元素的数组 print_r($name); //输出Array([1]=>高某,[value]=>高某,[0]=>姓名,[key]=>姓名) $company = each($contact); print_r($company); //输出Array([1]=>A公司,[value]=>A公司,[0]=>公司,[key]=>公司) $address = each($contact); print_r($address); //输出Array([1]=>北京市,[value]=>北京市,[0]=>地址,[key]=>地址) $no = each($contact); var_dump($no); //输出bool(false) ?>
②list() function
실제 함수는 아니고 PHP의 언어 구조입니다. list()는 한 단계로 변수 집합에 값을 할당합니다. 즉, 배열의 값을 일부 변수에 할당합니다. list()는 숫자로 인덱스된 배열에만 사용할 수 있으며 배열 인덱스가 0에서 시작한다고 가정합니다. 구문 형식은 다음과 같습니다.
list(mixed varname,mixed…) = array_expression
list() 문은 배열을 매개 변수로 직접 전달받지 않는 사용법이 매우 다릅니다. 대신 배열의 각 요소 값은 할당을 통해 list() 함수의 각 매개 변수에 할당됩니다. list() 함수는 각 매개변수를 스크립트에서 직접 사용할 수 있는 변수로 변환합니다. 사용법은 다음과 같습니다. <?php
$info = array('coffee','brown','caffeine');
list($drink,$color,$power) = $info;
list($drink,,$power) = $info; //变量的值是数组中第一个和第三个值
list( , ,$power) = $info; //变量值是数组中第三个元素的值
?>
<?php $contact = array("ID" => 1,"姓名" => "高某","公司" => "A公司","地址" => "北京市",); list($key,$value) = each($contact); echo "$key => $value"; //输出变量$key和$value,中间使用“=>”分割 ?>
while 루프 배열 순회앞서 소개한 Each() 및 list() 문을 사용하면 while 루프를 사용하여 순회하는 방법을 이해하는 것은 어렵지 않습니다. 배열. 사용되는 구문 형식은 다음과 같습니다.
while(list($key,$value) = each(array_expression)){ 循环体 }
이 통합 형식은 주어진 array_expression 배열을 순회합니다. while() 문의 각 루프에서 Each() 문은 현재 배열 요소의 키를 list() 함수의 첫 번째 매개 변수 변수 $key에 할당합니다. 그리고 현재 배열 요소의 값을 list() 함수의 두 번째 매개변수 변수 $value에 할당하고, Each() 문이 실행된 후 배열 내부의 포인터가 한 단계 뒤로 이동하므로 다음번에는 while( ) 명령문이 반복되면 배열에 있는 다음 요소의 키/값 쌍이 획득됩니다. 배열이 끝날 때까지 각각() 문은 FALSE를 반환하고 while() 문은 루프를 중지하고
배열 탐색을 종료합니다. 을 중첩하여 탐색할 수 있습니다. 배열을 순회하는 동안의 결과는 freach 문의 결과와 동일하지만 두 방법에는 차이점이 있습니다. while 문을 사용하여 배열을 순회한 후, Each() 문은 전달된 배열 매개변수의 내부 포인터를 배열의 끝으로 가리킵니다. while 문을 사용하여 동일한 배열을 다시 순회하는 경우 배열 포인터는 이미 배열의 끝에 있으며, Each() 문은 직접 FALSE를 반환하므로 while 문은 루프에서 실행되지 않습니다. 첫 번째 요소에 대한 배열 포인터를 재설정하려면 while 문이 실행되기 전에만 재설정() 함수를 호출하세요. foreach 문은 배열의 포인터 위치를 자동으로 재설정합니다. foreach가 실행되기 시작하면 배열 내부의 포인터가 자동으로 첫 번째 단위를 가리킵니다. 이는 foreach 루프 전에 Reset() 함수를 호출할 필요가 없음을 의미합니다. 위 내용은 배열 list(), Each() 및 while을 반복하는 세 가지 방법의 자세한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!<?php
$contact = array(
"ID" => 1,
"姓名" => "高某",
"公司" => "A公司",
"地址" => "北京市",
"电话" => "(010)98765432",
"EMAIL" => "gao@brophp.com",
);
//以HTML列表的方式输出数组中每个元素的信息
echo '<dl>一个联系人信息:';
while(list($key,$value) = each($contact)){
echo "<dd>$key : $value</dd>";
}
echo '</dl>';
?>