Heim  >  Artikel  >  php教程  >  Arrays und Array-Traversierung

Arrays und Array-Traversierung

WBOY
WBOYOriginal
2016-08-22 10:14:221315Durchsuche

Ich lerne seit einiger Zeit immer wieder PHP, aber ich verstehe es immer noch nicht richtig. Jetzt habe ich Arrays und das Durchlaufen von Arrays herausgefunden.

Ausgehend von den Grundlagen:

PHP-Arrays sind in Index-Array und relationales Array,

unterteilt

Das Indexarray bedeutet, dass der Index bei 0, 1, 2, 3, 4 ... beginnt, das relationale Array jedoch nicht. Es wird als Schlüssel verstanden (Schlüssel ist der Schlüssel)

Beginnen Sie mit dem Schreiben eines Arrays:

$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>);

Natürlich kannst du auch so schreiben:

    $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>;

Jetzt durchlaufen wir dieses Array

<span style="color: #0000ff;">for</span>($i = <span style="color: #800080;">0</span>;$if70f3dfc26a2a15f262162c414d3a21b<span style="color: #800000;">"</span><span>; </span>
<span>};</span>

Wenn der Index des Arrays zu diesem Zeitpunkt nicht bei 0 beginnt (nicht indiziertes Array), ist es sinnlos, sich nur auf die for-Schleife und count() zu verlassen. Zu diesem Zeitpunkt ist unser guter Freund foreach(). kommt.

<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 stellt den Schlüsselwert dar (= ähnelt dem Index-Index). $value stellt den Wert des Schlüsselwerts (Index) dar.
$key und $value können ihre Namen nach Belieben ändern, sie werden nur verwendet Konventionell repräsentieren diese beiden Variablen

Zusätzlich zu foreach() haben wir einen guten Freund, der auch das Array durchlaufen kann, nämlich every()

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>

?>

Was die Einführung von every() betrifft, können Sie es verstehen, indem Sie die Kommentare lesen. Nachdem every() das Array vervollständigt hat, wird jedes Element (Schlüssel-Wert-Paar) im Array in ein neues Array mit vier Teilen neu verpackt der darin enthaltenen Daten.

Aber eine solche Durchquerung ist zu mühsam und ziemlich niedrig...

Zu diesem Zeitpunkt erscheint list(), ein guter Freund von every(). Zuerst stellen wir list() vor:

<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>

Warum wird 1 gedruckt?

ist so. Die Funktion list() weist den -Wert im Array einigen Variablen zu, entsprechend (in Array-Reihenfolge) den Elementen im $userNane-Array Weisen Sie $a, $b, $c jeweils Werte

zu

Da Sie nun list() verstanden haben, können Sie das Array problemlos mit seinem guten Freund Each() durchlaufen

$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>

list($name,$age) = every($userNane);


echo $name; //Luo Xin
echo $age //21

<span style="color: #008000;"> </span>

Da die Elemente im Array nacheinander in ein neues Array neu verpackt werden, enthält jedes neue Array vier Datenelemente,

Zu diesem Zeitpunkt haben alle Daten zwei entsprechende Schlüssel und Werte. Zu diesem Zeitpunkt können Schlüssel und Wert nicht verwendet werden, aber 0 und 1 sind nützlich,

Verwenden Sie es, um 0 (Schlüssel) im neuen Elementarray in $userNane $name und 1 (Wert) $age

zuzuweisen

Da sich der Array-Zeiger nach Abschluss von every() um ein Bit nach unten bewegt, werden die Informationen über meinen Freund Yuan Xiucheng ausgedruckt, wenn Sie mit der Liste fortfahren,

Wenn ich zu diesem Zeitpunkt den ersten erneut drucken möchte, muss ich die Funktion „reset()“ verwenden. Ihre Funktion besteht darin, den Array-Zeiger auf die erste Position

zurückzusetzen
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>

Hier stellen wir zwei nützliche Array-Funktionen vor:

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>

    
?>

Bitte beachten Sie die Kommentare zur Wirkung~

Es ist zu spät, ich bin ein bisschen müde, nein, nein, nein, mein liebes zweidimensionales Array wurde noch nicht durchquert, wie kann ich schlafen? Nein! ! !

Sehen Sie sich den Code an:

<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 />";
	}

	
?>

 

Was ist ein zweidimensionales Array? Hier können Sie es als Array innerhalb eines Arrays verstehen. Der obige Code bedeutet, dass es drei Arrays innerhalb eines Arrays gibt.

An diesem Punkt stellt sich die Frage, was wäre, wenn es ein zweidimensionales Array mit Schlüssel-Wert-Paaren gäbe? Wie man eine Durchquerung durchführt.

Siehe Code:

    <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>

Aus den Kommentaren geht hervor, dass zusätzlich zu foreach() auch unsere Paarpartnerliste implementiert werden kann

Siehe Code:

    <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>

An diesem Punkt ist die Durchquerung beendet~

Wenn es Fehler gibt, sind Hinweise willkommen~

Hey, geh ins Bett und geh ins Bett...

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn