PHP 목록, 각 함수는 배열을 순회합니다.

두 가지 흥미로운 배열 함수를 살펴보겠습니다. 이 두 가지 기능은 배우기 어렵지 않습니다. 그러나 일부 학생들은 약간의 어려움을 겪을 것입니다. 리스트 함수와 각 함수의 동작 특성을 찾는데 어려움이 있습니다.

목록 함수

먼저 목록 함수에 대해 이야기해 보겠습니다.

list (mixed $variable1 [, Mixed $variablen ] )

해당 기능: 아래 첨자 0이 있는 인덱스 배열은 변수 1에 해당하고, 아래 첨자 1은 변수 2에 해당하는 식입니다.

실험을 통해 살펴보자:

rree

실험 결과를 살펴보자:

QQ截图20161114132308.png

분석 결과는 그림과 같이:

document_2015-09-03_55e8466feae5c.png

결론:

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 />';

?>

실행 결과:

QQ截图20161114132428.png

결론:

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 />';

?>

실행 결과는 다음과 같습니다.

QQ截图20161114132543.png

요약:

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 />';
?>

각각의 최초 실행 결과를 살펴보겠습니다:

QQ截图20161114133313.png

요약:
1. 요소, 첫 번째 요소('gao'=>'검은 옷을 입은 자')를 분해합니다.

1 분해 후 첫 번째 요소는 새 배열이 됩니다.

2새 배열의 인덱스 첨자 1에 원래 값(검은 옷을 입은 것)을 넣고 동시에 연관된 첨자 값에도 넣습니다.

3. 새 배열에서 원래 키(gao)를 관련 첨자 키와 인덱스 첨자 0에 넣습니다.

그림으로 표현합니다.

document_2015-09-03_55e84f4676360.png

이렇게 하면 한 번에 이해할 수 있습니다.

다음으로 각각의 또 다른 특징에 대해 이야기해보겠습니다. 한 번 읽고 한 요소를 뒤로 이동하세요.

<?php

//定义一个变量叫$kongjie(空姐)
$kongjie=[
   'gao'=>'穿黑衣服的',
   'shou'=>'退特别长特别细',
   'mei'=>'好白',
   'pl'=>'五官端正',
   'type'=>'那就是女神',
   '我是吊丝不敢跟女神搭讪'
   ];

//第一次each
$data = each($kongjie);

echo '<pre>';
var_dump($data);
echo '</pre>';


?>

실행 결과:

QQ截图20161114133417.png

요약:

1. 한 번 읽고 뒤로 한 번 이동 [기록이 있다고 상상하시면 됩니다. 화살표 in Move], 각 요소를 새로운 배열로 분해

2. 읽어온 끝에 작동 가능한 요소가 없으므로 false가 반환됩니다.

리스트와 각각의 협력

리스트의 특징과 각각의 특징을 알고 있습니다. 일부 작업을 완료하기 위해 목록을 각각 결합할 수 있습니까?

list($key,$value) = Each($array);

앞서 언급한 그림을 살펴보겠습니다.

11.png

목록의 첫 번째 변수는 아래 인덱스가 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 />';

?>

실행 결과는 다음과 같습니다.

QQ截图20161114133523.png

요약:

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 />';

?>

실행 데모:

QQ截图20161114133617.png

요약:

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 />';

}

?>

효과는 다음과 같습니다.

44.png

지속적인 학습
||
<?php $arr=array( '教学部'=>array( array('李某','18','人妖'), array('高某','20','男'), array('张某','21','妖人'), ), '宣传部'=>array( array('李某','18','人妖'), array('高某','20','男'), array('张某','21','妖人'), ), '财务部'=>array( array('李某','18','人妖'), array('高某','20','男'), array('张某','21','妖人'), ), ); ?>
  • 코스 추천
  • 코스웨어 다운로드
현재 코스웨어를 다운로드할 수 없습니다. 현재 직원들이 정리하고 있습니다. 앞으로도 본 강좌에 많은 관심 부탁드립니다~