>php教程 >php手册 >배열 및 배열 순회

배열 및 배열 순회

WBOY
WBOY원래의
2016-08-22 10:14:221351검색

한동안 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>

이쯤 되면 순회는 끝났습니다~

오류가 있으면 지적 환영입니다~

야 자고 자고...

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