>  기사  >  백엔드 개발  >  배열 list(), Each() 및 while을 통한 PHP 루핑의 3가지 방법 요약

배열 list(), Each() 및 while을 통한 PHP 루핑의 3가지 방법 요약

不言
不言원래의
2018-06-06 11:56:403756검색

이 글에서는 주로 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() 함수

실제 함수는 아니고 PHP의 언어 구조입니다. list()는 한 단계로 변수 집합에 값을 할당합니다. 즉, 배열의 값을 일부 변수에 할당합니다. list()는 숫자로 인덱스된 배열에만 사용할 수 있으며 배열 인덱스가 0에서 시작한다고 가정합니다. 구문 형식은 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.

list(mixed varname,mixed…) = array_expression

list() 문은 사용법에 있어서 배열을 직접 매개 변수로 받지 않습니다. 대신, "=" 연산자를 사용한 할당을 통해 배열의 각 요소 값이 list() 함수의 각 매개변수에 할당됩니다. list() 함수는 각 매개변수를 스크립트에서 직접 사용할 수 있는 변수로 변환합니다. 사용법은 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.

<?php
$info = array(&#39;coffee&#39;,&#39;brown&#39;,&#39;caffeine&#39;);
list($drink,$color,$power) = $info;
 
list($drink,,$power) = $info; //变量的值是数组中第一个和第三个值
 
list( , ,$power) = $info; //变量值是数组中第三个元素的值
?>

위의 예를 통해 list() 함수의 사용법을 이해한 후 각각() 함수와 list() 함수를 결합해 보세요. . 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.

<?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() 문은 루프를 중지하고 배열 순회를 종료합니다.

코드 복사 코드는 다음과 같습니다.

<?php
$contact = array(
"ID" => 1,
"姓名" => "高某",
"公司" => "A公司",
"地址" => "北京市",
"电话" => "(010)98765432",
"EMAIL" => "gao@brophp.com",
);
 
//以HTML列表的方式输出数组中每个元素的信息
echo &#39;<dl>一个联系人信息:&#39;;
 
while(list($key,$value) = each($contact)){
echo "<dd>$key : $value</dd>";
}
 
echo &#39;</dl>&#39;;
?>

같은 방식으로 다차원 배열을 중첩하고 탐색할 수도 있습니다. 배열을 순회하는 동안의 결과는 freach 문의 결과와 동일하지만 두 방법에는 차이점이 있습니다. while 문을 사용하여 배열을 순회한 후, Each() 문은 전달된 배열 매개변수의 내부 포인터를 배열의 끝으로 가리킵니다. while 문을 사용하여 동일한 배열을 다시 순회하는 경우 배열 포인터는 이미 배열의 끝에 있으며, Each() 문은 직접 FALSE를 반환하므로 while 문은 루프에서 실행되지 않습니다. 첫 번째 요소에 대한 배열 포인터를 재설정하려면 while 문이 실행되기 전에만 재설정() 함수를 호출하세요. foreach 문은 배열의 포인터 위치를 자동으로 재설정합니다. foreach가 실행되기 시작하면 배열 내부의 포인터가 자동으로 첫 번째 단위를 가리킵니다. 이는 foreach 루프 전에 Reset() 함수를 호출할 필요가 없음을 의미합니다.

관련 권장사항:

PHP 페이지 인코딩 선언 방법(헤더 또는 메타)에 대한 자세한 설명

php의 반올림 함수 코드(floor 함수, ceil 함수, round 및 intval)

위 내용은 배열 list(), Each() 및 while을 통한 PHP 루핑의 3가지 방법 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.