한동안 PHP를 켜놓고 배웠는데 아직도 잘 이해가 안 되네요. 이제 배열을 정리하고 배열을 순회하게 되었습니다.
기본부터 시작하기:
PHP 배열은 인덱스 배열과 관계형 배열,
으로 나누어집니다.인덱스 배열은 첨자가 0, 1, 2, 3, 4...부터 시작한다는 뜻이지만, 관계형 배열은 그렇지 않은 키(key is the key)로 이해됩니다.
배열 작성 시작:
$userNane = array(<span style="color: #800000;">'</span><span style="color: #800000;">陈云</span><span style="color: #800000;">'</span>,<span style="color: #800000;">'</span><span style="color: #800000;">罗鑫</span><span style="color: #800000;">'</span>,<span style="color: #800000;">'</span><span style="color: #800000;">袁修成</span><span style="color: #800000;">'</span>);
물론 다음과 같이 쓸 수도 있습니다.
$userNane[<span style="color: #800080;">0</span>] = <span style="color: #800000;">'</span><span style="color: #800000;">陈云</span><span style="color: #800000;">'</span><span style="color: #000000;">; $userNane[</span><span style="color: #800080;">1</span>] = <span style="color: #800000;">'</span><span style="color: #800000;">罗鑫</span><span style="color: #800000;">'</span><span style="color: #000000;">; $userNane[</span><span style="color: #800080;">2</span>] = <span style="color: #800000;">'</span><span style="color: #800000;">袁修成</span><span style="color: #800000;">'</span>;
이제 이 배열을 반복해 보겠습니다
<span style="color: #0000ff;">for</span>($i = <span style="color: #800080;">0</span>;$if70f3dfc26a2a15f262162c414d3a21b<span style="color: #800000;">"</span><span>; </span>
<span>};</span>
이때, 배열의 첨자가 0부터 시작하지 않으면(인덱스되지 않은 배열) 이때 단순히 for 루프와 count()에만 의존하는 것은 쓸모가 없습니다. 온다.
<span style="color: #0000ff;">foreach</span> ($userNane <span style="color: #0000ff;">as</span> $key =><span> $value) {<br> echo $key.</span><span style="color: #800000;">'</span><span style="color: #800000;">------</span><span style="color: #800000;">'</span>.$value.<span style="color: #800000;">"</span><span style="color: #800000;">df250b2156c434f3390392d09b1c9563</span><span style="color: #800000;">"</span><span>; <br>}</span>
$key는 키 값을 나타냅니다(= 인덱스 첨자와 유사) $value는 키 값(하첨자)의 값을 나타냅니다.
$key 및 $value는 이름을 마음대로 변경할 수 있으며 그냥 사용됩니다. 관례적으로 이 두 변수는
foreach() 외에도 배열을 탐색할 수 있는 좋은 친구가 있는데, 바로 Each()입니다.
ccc70dc546f18409f5b15c6511319a6f <?<span style="color: #000000;">php $userNane[</span><span style="color: #800000;">'</span><span style="color: #800000;">陈云</span><span style="color: #800000;">'</span>] = <span style="color: #800080;">19</span><span style="color: #000000;">; $userNane[</span><span style="color: #800000;">'</span><span style="color: #800000;">罗鑫</span><span style="color: #800000;">'</span>] = <span style="color: #800080;">21</span><span style="color: #000000;">; $userNane[</span><span style="color: #800000;">'</span><span style="color: #800000;">袁</span><span style="color: #800000;">'</span>] = <span style="color: #800080;">11</span><span style="color: #000000;">; $a</span>=each($userNane); <span style="color: #008000;">//</span><span style="color: #008000;">指针下移</span> echo $a[<span style="color: #800000;">"</span><span style="color: #800000;">key</span><span style="color: #800000;">"</span>].<span style="color: #800000;">'</span><span style="color: #800000;">----</span><span style="color: #800000;">'</span>.$a[<span style="color: #800000;">"</span><span style="color: #800000;">value</span><span style="color: #800000;">"</span>].<span style="color: #800000;">'</span><span style="color: #800000;">df250b2156c434f3390392d09b1c9563</span><span style="color: #800000;">'</span><span style="color: #000000;">; $a</span>=<span style="color: #000000;">each($userNane); echo $a[</span><span style="color: #800000;">"</span><span style="color: #800000;">key</span><span style="color: #800000;">"</span>].<span style="color: #800000;">'</span><span style="color: #800000;">----</span><span style="color: #800000;">'</span>.$a[<span style="color: #800000;">"</span><span style="color: #800000;">value</span><span style="color: #800000;">"</span>].<span style="color: #800000;">'</span><span style="color: #800000;">df250b2156c434f3390392d09b1c9563</span><span style="color: #800000;">'</span><span style="color: #000000;">; $a</span>=<span style="color: #000000;">each($userNane); echo $a[</span><span style="color: #800000;">"</span><span style="color: #800000;">key</span><span style="color: #800000;">"</span>].<span style="color: #800000;">'</span><span style="color: #800000;">----</span><span style="color: #800000;">'</span>.$a[<span style="color: #800000;">"</span><span style="color: #800000;">value</span><span style="color: #800000;">"</span>].<span style="color: #800000;">'</span><span style="color: #800000;">df250b2156c434f3390392d09b1c9563</span><span style="color: #800000;">'</span><span style="color: #000000;">; </span><span style="color: #008000;">/*</span><span style="color: #008000;">while (!!$a=each($userNane)) { //根据while循环判断,条件内为真则继续执行循环体,为假则退出循环,两个!!将数组转化为布尔值,存在则代表 1 echo $a["key"].'----'.$a["value"].'df250b2156c434f3390392d09b1c9563'; }</span><span style="color: #008000;">*/</span> <span style="color: #008000;">//</span><span style="color: #008000;">each()函数返回的是一个数组 </span><span style="color: #008000;">//</span><span style="color: #008000;">each后所在数组的“每一个”键值会被重新包装成一个新的数组,里面有四条数据,key and value,0 and 1 </span><span style="color: #008000;">//</span><span style="color: #008000;">each完一次后指针下移一位,默认开始是第一位,也就是指向数组的第二条键值对,第二条键值对被重新包装秤数组</span> ?>
each()의 소개는 주석을 읽으면 이해할 수 있습니다. Each()가 배열을 완성한 후 배열의 각 요소(키-값 쌍)는 4개의 조각으로 구성된 새로운 배열로 다시 패키징됩니다. 그 안에 있는 데이터.
근데 그런 순회가 너무 귀찮고 수준도 낮은데...
이때, 각각()의 좋은 친구인 list()가 등장합니다. 먼저 list()를 소개하겠습니다.
<span style="color: #008000;">$userNane = array(1,2,3);</span> <span style="color: #008000;">list($a,$b,$c) = $userNane; echo $a; </span> <span style="color: #008000;">//</span><span style="color: #008000;">1 </span>
왜 1이 인쇄되나요?
은 이와 같이 list() 함수가 배열의 값 을 일부 변수 에 할당하고 이에 따라 (배열 순서대로) $userNane 배열 의 요소를 할당합니다. $a, $b, $c에 각각
값을 할당합니다.
이제 list()를 이해했으므로 좋은 친구인 Each()를 사용하여 배열을 쉽게 탐색할 수 있습니다.
$userNane[<span style="color: #800000;">'</span><span style="color: #800000;">陈云</span><span style="color: #800000;">'</span>] = <span style="color: #800080;">19</span><span style="color: #000000;">; $userNane[</span><span style="color: #800000;">'</span><span style="color: #800000;">罗鑫</span><span style="color: #800000;">'</span>] = <span style="color: #800080;">21</span><span style="color: #000000;">; $userNane[</span><span style="color: #800000;">'</span><span style="color: #800000;">袁</span><span style="color: #800000;">'</span>] = <span style="color: #800080;">11</span><span style="color: #000000;">; list($name,$age) </span>=<span style="color: #000000;"> each($userNane); echo $name; </span><span style="color: #008000;">//</span><span style="color: #008000;">陈云</span> echo $age; <span style="color: #008000;">//</span><span style="color: #008000;">19<br><br><br></span>
목록($name,$age) = 각($userNane);
echo $name; //루오신
echo $age;
<span style="color: #008000;"> </span>
배열의 요소가 각각 새 배열로 다시 패키징되기 때문에 각 새 배열에는 4개의 데이터 조각이 있습니다.
이때 각 데이터에는 해당 키와 값이 2개 있습니다. 이때 키와 값은 사용할 수 없지만 0과 1이 유용합니다.$userNane의
새 요소 배열에서 0(키)을 $name에 할당하고 1(값)을 $age 에 할당하는 데 사용합니다.
각()이 완료된 후 배열 포인터가 한 비트 아래로 이동하기 때문에 계속해서 목록을 작성하면 내 친구 Yuan Xiucheng에 대한 정보가 인쇄됩니다.
이때 첫 번째 항목을 다시 인쇄하려면
배열 포인터를 첫 번째 위치 로 재설정하는 기능을 사용해야 합니다.
list($name,$age) =<span style="color: #000000;"> each($userNane); echo $name; </span><span style="color: #008000;">//</span><span style="color: #008000;">陈云</span> echo $age; <span style="color: #008000;">//</span><span style="color: #008000;">19</span><span style="color: #000000;"> list($name,$age) </span>=<span style="color: #000000;"> each($userNane); echo $name; </span><span style="color: #008000;">//</span><span style="color: #008000;">罗鑫</span> echo $age; <span style="color: #008000;">//</span><span style="color: #008000;">21</span> <span style="color: #000000;"> reset($userNane);<br> list($name,$age) </span>=<span style="color: #000000;"> each($userNane); echo $name; </span><span style="color: #008000;">//</span><span style="color: #008000;">陈云</span> echo $age; <span style="color: #008000;">//</span><span style="color: #008000;">19</span>
두 가지 유용한 배열 기능을 소개합니다.
ccc70dc546f18409f5b15c6511319a6f 9e1686351822eae85fae6c4a2c330ca1<span style="color: #800080;">12</span>,<span style="color: #800000;">"</span><span style="color: #800000;">罗鑫</span><span style="color: #800000;">"</span>=><span style="color: #800080;">18</span><span style="color: #000000;">); var_dump(array_flip($number)); </span><span style="color: #008000;">//</span><span style="color: #008000;">array_flip()交换数组中的键和值</span> ?>
늦었어 좀 피곤해 안 돼 안 돼 내 소중한 2차원 배열이 아직 통과도 안 됐는데 어떻게 잠을 잘 수 있어? ! !
코드 보기:
<meta charset="UTF-8"> <?php //遍历二位数组 $food = array( array('苹果','香蕉','梨子'), array('鸡肉','猪肉','牛肉'), array('脉动','快线','果粒橙'), ); for ($i=0; $i <count($food); $i++) { for ($j=0; $j <count($food[$i]);$j++) { echo $food[$i][$j].'|'; //数组里的 <span style="color: #ff6600;">第i个数组</span> 中的 <span style="color: #ff6600;">第j个元素</span>,这样理解第二维的数组 } echo "<br />"; } ?>
2차원 배열이란 무엇인가요? 여기서는 배열 안의 배열로 이해하면 됩니다. 위의 코드는 배열 안에 배열이 3개 있다는 의미입니다.
이 시점에서 질문이 생깁니다. 키-값 쌍으로 구성된 2차원 배열이 있다면 어떨까요? 순회하는 방법.
코드 보기:
<span style="color: #008000;">//</span><span style="color: #008000;">遍历二位数组带key的</span> $food =<span style="color: #000000;"> array( array(</span><span style="color: #800000;">'</span><span style="color: #800000;">产品</span><span style="color: #800000;">'</span>=><span style="color: #800000;">'</span><span style="color: #800000;">苹果</span><span style="color: #800000;">'</span>,<span style="color: #800000;">'</span><span style="color: #800000;">价格</span><span style="color: #800000;">'</span>=><span style="color: #800000;">'</span><span style="color: #800000;">12</span><span style="color: #800000;">'</span>,<span style="color: #800000;">'</span><span style="color: #800000;">口味</span><span style="color: #800000;">'</span>=><span style="color: #800000;">'</span><span style="color: #800000;">香</span><span style="color: #800000;">'</span><span style="color: #000000;">), array(</span><span style="color: #800000;">'</span><span style="color: #800000;">产品</span><span style="color: #800000;">'</span>=><span style="color: #800000;">'</span><span style="color: #800000;">鸡肉</span><span style="color: #800000;">'</span>,<span style="color: #800000;">'</span><span style="color: #800000;">价格</span><span style="color: #800000;">'</span>=><span style="color: #800000;">'</span><span style="color: #800000;">13</span><span style="color: #800000;">'</span>,<span style="color: #800000;">'</span><span style="color: #800000;">口味</span><span style="color: #800000;">'</span>=><span style="color: #800000;">'</span><span style="color: #800000;">甜</span><span style="color: #800000;">'</span><span style="color: #000000;">), array(</span><span style="color: #800000;">'</span><span style="color: #800000;">产品</span><span style="color: #800000;">'</span>=><span style="color: #800000;">'</span><span style="color: #800000;">脉动</span><span style="color: #800000;">'</span>,<span style="color: #800000;">'</span><span style="color: #800000;">价格</span><span style="color: #800000;">'</span>=><span style="color: #800000;">'</span><span style="color: #800000;">14</span><span style="color: #800000;">'</span>,<span style="color: #800000;">'</span><span style="color: #800000;">口味</span><span style="color: #800000;">'</span>=><span style="color: #800000;">'</span><span style="color: #800000;">酸</span><span style="color: #800000;">'</span><span style="color: #000000;">) ); </span><span style="color: #008000;">//</span><span style="color: #008000;">利用 foreach() 来遍历</span> <span style="color: #0000ff;">for</span> ($i=<span style="color: #800080;">0</span>; $i 82a3cbd10bb7d2d642758f2bfa4db491<span style="color: #000000;"> $value) { </span><span style="color: #008000;">//</span><span style="color: #008000;">echo $food[$i][$key].'|'; </span><span style="color: #008000;">//</span><span style="color: #008000;">只获取到数组里键 对应的值</span> echo $key.<span style="color: #800000;">'</span><span style="color: #800000;">---</span><span style="color: #800000;">'</span>.$value; <span style="color: #008000;">//</span><span style="color: #008000;">打印出了二维数组的键and值</span> <span style="color: #000000;"> } echo </span><span style="color: #800000;">"</span><span style="color: #800000;">df250b2156c434f3390392d09b1c9563</span><span style="color: #800000;">"</span><span style="color: #000000;">; }</span>
의견을 보면 트래버스하는 foreach() 외에도 커플 파트너 목록을 구현할 수 있다는 것이 분명합니다.
코드 보기:
<span style="color: #008000;">//</span><span style="color: #008000;">遍历二位数组带key的</span> $food =<span style="color: #000000;"> array( array(</span><span style="color: #800000;">'</span><span style="color: #800000;">产品</span><span style="color: #800000;">'</span>=><span style="color: #800000;">'</span><span style="color: #800000;">苹果</span><span style="color: #800000;">'</span>,<span style="color: #800000;">'</span><span style="color: #800000;">价格</span><span style="color: #800000;">'</span>=><span style="color: #800000;">'</span><span style="color: #800000;">12</span><span style="color: #800000;">'</span>,<span style="color: #800000;">'</span><span style="color: #800000;">口味</span><span style="color: #800000;">'</span>=><span style="color: #800000;">'</span><span style="color: #800000;">香</span><span style="color: #800000;">'</span><span style="color: #000000;">), array(</span><span style="color: #800000;">'</span><span style="color: #800000;">产品</span><span style="color: #800000;">'</span>=><span style="color: #800000;">'</span><span style="color: #800000;">鸡肉</span><span style="color: #800000;">'</span>,<span style="color: #800000;">'</span><span style="color: #800000;">价格</span><span style="color: #800000;">'</span>=><span style="color: #800000;">'</span><span style="color: #800000;">13</span><span style="color: #800000;">'</span>,<span style="color: #800000;">'</span><span style="color: #800000;">口味</span><span style="color: #800000;">'</span>=><span style="color: #800000;">'</span><span style="color: #800000;">甜</span><span style="color: #800000;">'</span><span style="color: #000000;">), array(</span><span style="color: #800000;">'</span><span style="color: #800000;">产品</span><span style="color: #800000;">'</span>=><span style="color: #800000;">'</span><span style="color: #800000;">脉动</span><span style="color: #800000;">'</span>,<span style="color: #800000;">'</span><span style="color: #800000;">价格</span><span style="color: #800000;">'</span>=><span style="color: #800000;">'</span><span style="color: #800000;">14</span><span style="color: #800000;">'</span>,<span style="color: #800000;">'</span><span style="color: #800000;">口味</span><span style="color: #800000;">'</span>=><span style="color: #800000;">'</span><span style="color: #800000;">酸</span><span style="color: #800000;">'</span><span style="color: #000000;">) ); </span><span style="color: #008000;">//</span><span style="color: #008000;">利用 list--->each() 来遍历</span> <span style="color: #0000ff;">for</span> ($i=<span style="color: #800080;">0</span>; $i <count($food); $i++<span style="color: #000000;">) { </span><span style="color: #0000ff;">while</span> ( list($key,$value) = each($food[$i])) { <span style="color: #008000;">//</span><span style="color: #008000;">each后的数组拆分赋给list()里的变量($key,$value)</span> echo $key.<span style="color: #800000;">'</span><span style="color: #800000;">---</span><span style="color: #800000;">'</span>.$value.<span style="color: #800000;">'</span><span style="color: #800000;">|</span><span style="color: #800000;">'</span>; <span style="color: #008000;">//</span><span style="color: #008000;">打印出了二维数组的键值</span> <span style="color: #000000;"> } echo </span><span style="color: #800000;">"</span><span style="color: #800000;">df250b2156c434f3390392d09b1c9563</span><span style="color: #800000;">"</span><span style="color: #000000;">; }</span>
이쯤 되면 순회는 끝났습니다~
오류가 있으면 지적 환영입니다~
야 자고 자고...