PHP 목록, 각 함수는 배열을 순회합니다.
두 가지 흥미로운 배열 함수를 살펴보겠습니다. 이 두 가지 기능은 배우기 어렵지 않습니다. 그러나 일부 학생들은 약간의 어려움을 겪을 것입니다. 리스트 함수와 각 함수의 동작 특성을 찾는데 어려움이 있습니다.
목록 함수
먼저 목록 함수에 대해 이야기해 보겠습니다.
list (mixed $variable1 [, Mixed $variablen ] )
해당 기능: 아래 첨자 0이 있는 인덱스 배열은 변수 1에 해당하고, 아래 첨자 1은 변수 2에 해당하는 식입니다.
실험을 통해 살펴보자:
rree실험 결과를 살펴보자:
분석 결과는 그림과 같이:
결론:
1. Zhang San에 인덱스 0을 $one에 할당
2. Zhang 할당 인덱스 1의 San은 $two
에 할당됩니다. 3. 아래 첨자 2의 Wang Wu는 $ three
에 할당됩니다. 따라서 리스트의 기능은 왼쪽에서 오른쪽으로 수행된다는 것을 알 수 있습니다. 하나씩 인덱스 배열의 0부터 시작하는 아래 첨자 값에 해당합니다.
list의 또 다른 사용법:
<?php list($one , $two , $three) = array('张三' ,'李四' ,'王五'); //再次声明:单引号不结释变量,所以输出的是字符串$one echo '$one----'.$one.'<br />'; echo '$two----'.$two.'<br />'; echo '$three----'.$three.'<br />'; ?>
실행 결과:
결론:
1.list 첫 번째 및 변수의 두 번째 자리는 공백으로 남겨두고 $3만 썼습니다.
2. 일대일 대응 원칙에 따르면 장산과 리시에 대응할 수 있는 변수는 없습니다.
3. 따라서 Wang Wu만이 가변 대응을 가집니다
인덱스 배열의 일대일 대응 원칙을 엄격히 기억하십시오. 목록의 첫 번째 변수는 아래 첨자 0이 있는 배열 요소에 해당하고, 아래 첨자 1은 목록의 두 번째 배열 요소에 해당합니다.
아래 결과가 무엇인지 맞춰보세요. 이유는 무엇입니까?
<?php list( , , $three) = array('张三' ,'李四' ,'王五'); echo '$one----'.$one.'<br />'; echo '$two----'.$two.'<br />'; echo '$three----'.$three.'<br />'; ?>
실행 결과는 다음과 같습니다.
요약:
1. 1:1 대응 원칙으로 인해, $one을 찾을 수 없습니다. 0으로 표시된 배열 요소에 대해 $two는 첨자 1이 있는 배열 요소를 찾을 수 없습니다. $3만 첨자 2가 있는 배열 요소를 찾습니다.
3. list($one, $two, $ three), 변수 3개만 썼습니다. 대응이 완료되면 후속 변수에 대응할 필요가 없으며 Li Si와 Wang Wu가 삭제됩니다.
각 기능
각 기능의 규칙성이 더욱 독특하고 흥미롭습니다.
각 배열( array &$array )
함수: 배열을 전달합니다. 요소 중 하나를 새 배열로 분할합니다. 한 번에 하나의 요소를 수행하십시오. 한 번 이동하고 다음 배열 요소도 같은 방식으로 작동합니다. 끝까지 실행하고 false를 반환합니다.
먼저 각각이 배열 요소에서 어떻게 작동하는지 살펴보겠습니다.
<?php list($one, $two, $three) = array(2 => '张三', '李四', '王五'); echo '$one----' . $one . '<br />'; echo '$two----' . $two . '<br />'; echo '$three----' . $three . '<br />'; ?>
각각의 최초 실행 결과를 살펴보겠습니다:
요약:
1. 요소, 첫 번째 요소('gao'=>'검은 옷을 입은 자')를 분해합니다.
1 분해 후 첫 번째 요소는 새 배열이 됩니다.
2새 배열의 인덱스 첨자 1에 원래 값(검은 옷을 입은 것)을 넣고 동시에 연관된 첨자 값에도 넣습니다.
3. 새 배열에서 원래 키(gao)를 관련 첨자 키와 인덱스 첨자 0에 넣습니다.
그림으로 표현합니다.
이렇게 하면 한 번에 이해할 수 있습니다.
다음으로 각각의 또 다른 특징에 대해 이야기해보겠습니다. 한 번 읽고 한 요소를 뒤로 이동하세요.
<?php //定义一个变量叫$kongjie(空姐) $kongjie=[ 'gao'=>'穿黑衣服的', 'shou'=>'退特别长特别细', 'mei'=>'好白', 'pl'=>'五官端正', 'type'=>'那就是女神', '我是吊丝不敢跟女神搭讪' ]; //第一次each $data = each($kongjie); echo '<pre>'; var_dump($data); echo '</pre>'; ?>
실행 결과:
요약:
1. 한 번 읽고 뒤로 한 번 이동 [기록이 있다고 상상하시면 됩니다. 화살표 in Move], 각 요소를 새로운 배열로 분해
2. 읽어온 끝에 작동 가능한 요소가 없으므로 false가 반환됩니다.
리스트와 각각의 협력
리스트의 특징과 각각의 특징을 알고 있습니다. 일부 작업을 완료하기 위해 목록을 각각 결합할 수 있습니까?
list($key,$value) = Each($array);
앞서 언급한 그림을 살펴보겠습니다.
목록의 첫 번째 변수는 아래 인덱스가 0인 요소를 찾아 값을 할당하고, 두 번째 변수는 인덱스 첨자가 1인 요소를 찾아 변수에 값을 할당합니다.
다음 예를 살펴보겠습니다.
<?php //定义一个变量叫$kongjie(空姐) $kongjie=[ 'gao'=>'穿黑衣服的', 'shou'=>'退特别长特别细', 'mei'=>'好白', ]; //第一次each $data = each($kongjie); echo '<pre>'; var_dump($data); echo '</pre>'; echo '-----华丽丽分割线------<br />'; //第2次each $data = each($kongjie); echo '<pre>'; var_dump($data); echo '</pre>'; echo '-----华丽丽分割线------<br />'; //第3次each【执行到了最后一个元素了】 $data = each($kongjie); echo '<pre>'; var_dump($data); echo '</pre>'; echo '-----华丽丽分割线------<br />'; //第4次【此时,后面已没有可操作的元素了,看返回什么】 $data = each($kongjie); echo '<pre>'; var_dump($data); echo '</pre>'; echo '-----华丽丽分割线------<br />'; ?>
실행 결과는 다음과 같습니다.
요약:
1.each 변수를 4개의 요소로 나눕니다
2. 목록에서는 변수 $key에 0 =>gao를 할당합니다
3. 목록에서는 1 => 검은 옷을 입은 The에 할당합니다. 변수 $값
각각은 끝에 false를 반환하므로 부울 루프 while을 사용하여 배열 루프를 완료할 수 있습니다.
다음 효과를 얻으려면 위 코드를 살짝 수정하세요.
<?php //定义一个变量叫$kongjie(空姐) $kongjie=[ 'gao'=>'穿黑衣服的', 'shou'=>'腿特别长特别细', 'mei'=>'好白', ]; list($key,$value) = each($kongjie); echo $key. '-----' .$value .'<br />'; ?>
실행 데모:
요약:
1. 한 번 반복하고, 각각 한 번씩 실행하고, 코드를 실행한 다음 한 요소를 뒤로 이동합니다
2. 실행이 끝나면 fasle로 돌아가서 실행이 중지됩니다.
3. Each와 List를 결합하면 foreach와 동일한 효과를 얻을 수 있습니다.
숙제:
list와 Each를 사용하여 다음 배열을 탐색하고 표시합니다.
<?php //定义一个变量叫$kongjie(空姐) $kongjie=[ 'gao'=>'穿黑衣服的', 'shou'=>'退特别长特别细', 'mei'=>'好白', ]; while(list($key,$value) = each($kongjie)){ echo $key. '-----' .$value .'<br />'; } ?>
효과는 다음과 같습니다.