Einführung in Arrays
Erstellung von Arrays
Dynamisches Wachstum des Arrays
Durchlauf des Arrays
Verwandte Funktionen des Arrays
Array-Operatoren
Was wir zuvor gelernt haben, sind Variablen und Konstanten Es handelt sich um einzelne Datenelemente, und manchmal müssen wir einige Werte desselben Typs oder einige irrelevante Werte angemessen speichern, und wenn sie verwendet werden, können sie nach bestimmten Regeln verwendet werden Holen Sie sich die Daten. Zu diesem Zeitpunkt können die vorherigen Variablen die Anforderungen nicht erfüllen, daher werden hier Arrays verwendet.
Arrays in PHP unterscheiden sich von Arrays in anderen Sprachen. Dies liegt auch an der Lockerheit der PHP-Sprachsyntax. Was ist der Unterschied?
Das sogenannte Array ist eine Sammlung von Elementen desselben Datentyps oder verschiedener Datentypen, die in einer bestimmten Reihenfolge angeordnet sind. Es handelt sich um eine Sammlung von Variablen, die eine begrenzte Anzahl von Variablen mit einem Namen benennt und dann verwendet Zahlen, um sie zu unterscheiden. Dieser Name wird als Array-Name bezeichnet, die Zahl wird als Index bezeichnet. Die einzelnen Variablen, aus denen ein Array besteht, werden als Komponenten des Arrays, auch als Elemente des Arrays und manchmal auch als tiefgestellte Variablen bezeichnet.
Das gängige Verständnis der Definition eines Arrays besteht darin, eine Sammlung von Daten zu speichern
<?php //定义一个数组,里面存放的数据类型可以任意类型 $arr = array(12,true,false,'abcd',12.2); print_r($arr);//输出数组。 .....结果...... Array ( [0] => 12 [1] => 1 [2] => [3] => abcd [4] => 12.2 )
Sie können sehen, dass im Array verschiedene Datentypen gespeichert sind und ausgegeben werden können während der Ausgabe. Und Sie können sehen, dass bei der Ausgabe jeder Wert einen entsprechenden Index hat. Dieser Index wird als Schlüssel bezeichnet, und der Wert ist ein Wert. Wenn wir einen bestimmten Wert erhalten möchten, können wir ihn per Schlüssel abrufen.
$a = 数组名[键名] echo $arr[0]; .....结果...... 12
Wenn der Schlüsselwert des Arrays eine Zahl ist, wird sein Index aus 0 berechnet.
Wie werden also Arrays erstellt?
Arrays indizieren (Indizes sind numerisch) Es gibt drei Möglichkeiten, Arrays in PHP zu definieren.
Assoziatives Array (der Index ist eine Zeichenfolge)
Der Index des Arrays hat beides.
Der erste Typ
<?php //定义数组,数值用逗号隔开。 $arr = array(1,2,3,4,'abcd',true); print_r($arr); .....结果...... Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => abcd [5] => 1 )
Verwenden Sie die Sprachstruktur array(), um ein neues Array zu erstellen Ausgabeergebnis Es ist eine Zahl. Die Daten werden auch über numerische Indizes abgerufen. Dies ist das Indexarray.
Die zweite Methode
<?php //关联数组,自己定义下标,用=>来定义键和值 $arr = array('a' => 1,'b' => 2,'c' => 'abcde', 'd' => true); print_r($arr); .....结果...... Array ( [a] => 1 [b] => 2 [c] => abcde [d] => 1 )
Diese Methode wird ebenfalls mithilfe der Array()-Syntaxstruktur definiert, aber der Index des Arrays wird von uns selbst definiert, hier von Ihnen Sie können Ihren eigenen Index entsprechend Ihrer eigenen Situation definieren. Bezüglich der Schlüsselwertdefinition beachten Sie bitte, dass der Schlüssel die folgende erzwungene Konvertierung aufweist:
Strings, die zulässige Ganzzahlwerte enthalten, werden in Ganzzahlen konvertiert. Beispielsweise wird der Schlüsselname „8“ tatsächlich als 8 gespeichert. „08“ wird jedoch nicht umgewandelt, da es sich nicht um einen zulässigen Dezimalwert handelt.
Gleitkommazahlen werden ebenfalls in ganze Zahlen umgewandelt, d. h. ihre Dezimalteile werden gerundet. Beispielsweise wird der Schlüsselname 8.7 tatsächlich als 8 gespeichert.
Boolesche Werte werden ebenfalls in Ganzzahlen umgewandelt. Das heißt, der Schlüsselname true wird tatsächlich als 1 und der Schlüsselname false als 0 gespeichert.
Null wird in eine leere Zeichenfolge konvertiert, d. h. der Schlüsselname null wird tatsächlich als „“ gespeichert.
Arrays und Objekte können nicht als Schlüssel verwendet werden. Wenn Sie darauf bestehen, wird eine Warnung angezeigt: Unzulässiger Offset-Typ.
Wenn mehrere Zellen denselben Schlüsselnamen in der Array-Definition verwenden, wird nur die letzte verwendet und die vorherigen werden überschrieben.
Um den Wert im assoziativen Array zu erhalten, müssen Sie Ihren eigenen definierten Schlüssel verwenden.
Der dritte Typ
<?php $arr[0] = 1; $arr[2] = 2; $arr['a'] = 12; $arr[4] = 45; print_r($arr); .....结果...... Array ( [0] => 1 [2] => 2 [a] => 12 [4] => 45 )
Die Definition des dritten Array-Typs kann direkt mit eckigen Klammern definiert werden. Das System geht standardmäßig davon aus, dass es sich um ein Array handelt Array und fahren Sie mit der Erstellung fort. Für Indizes können Sie Zahlen oder Zeichenfolgen verwenden. Wenn jedoch mehrere Einheiten denselben Schlüsselnamen in der Array-Definition verwenden, wird nur die letzte verwendet und die vorherigen werden überschrieben.
Die Länge des PHP-Arrays ist nicht festgelegt, Sie können die Daten immer noch gleichzeitig ausfüllen Mit der Zeit erhöht sich auch die Länge des Arrays. Dies ist das dynamische Wachstum des PHP-Arrays.
<?php for($i = 0; $i < 10; $i++){ $arr[] = $i; } print_r($arr); ......结果....... Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 [8] => 8 [9] => 9 )
Der obige Code verwendet eine for-Schleife und die dritte Definitionsmethode des Arrays, um Werte zuzuweisen. Sie können jedoch sehen, dass wir den Index nicht in die eckigen Klammern des Arrays geschrieben haben, sondern Das Programm hat keinen Fehler gemeldet, dies liegt am dynamischen Wachstum des Arrays. Wenn kein Schlüsselwert angegeben wird, verwendet PHP automatisch den größten zuvor verwendeten Ganzzahlschlüssel plus 1 als neuen Schlüssel. Daher können Sie in der Ausgabe sehen, dass der Index automatisch von 0 an erhöht wird.
Wir haben die Erstellung und grundlegende Verwendung von Arrays bereits eingeführt. Wie extrahieren wir also alle Werte aus dem Array? In PHP können Sie einen Schleifenkontrollfluss verwenden, um die Werte in einem Array abzurufen, und das Array durchlaufen, um die darin enthaltenen Werte einzeln abzurufen.
for
Sie können for verwenden, um die Werte im Array während des Array-Durchlaufs abzurufen.
<?php $arr = array(1,9,4,2,8,10,5); $sum = count($arr); for($i = 0; $i < $sum; $i++){ echo $arr[$i] . ' '; } .....结果...... 1 9 4 2 8 10 5
上面的count()这个系统函数是统计一个数组里的所有元素,或者一个对象里的东西。从而的到数组的大小,也就是长度。然后通过for循环,把$i当做数组的下标($i从0开始)。
foreach
在上面的代码中如果我们的数组是关联数组,也就是数组的下标是一个字符串,那么上面的代码是不可能取出来。所以我们可以使用PHP提供的另外一种循环方法:foreach()。它的语法有两种:
foreach(数组名 as $key => $value){ } foreach(数组名 as $value){ }
其中“as”是一个关键字,不能变。
foreach里面有可以有三个参数,第一个参数是数组的名字,第二个参数
value是用来存储从数组中取出来的值。当然键和值得名字可以根据自己的情况自己取。
当里面的参数是两个的时候,$value只用来存放从数组中取出来的值,而没有键。
<?php $arr = array(1,9,4,2,8,10,5); foreach ($arr as $key => $value) { echo $key . '=>' . $value . ' '; } echo '<br>'; foreach ($arr as $value) { echo $value . ' '; } .....结果...... 0=>1 1=>9 2=>4 3=>2 4=>8 5=>10 6=>5 1 9 4 2 8 10 5
在第二个循环中没有键的输出。
上面的两种循环结构,就是我们常用到的数组遍历的方法,其中第二个方法,也就是用foreach的方法,我们会经常用到,因为这种方法对于所有的数组都适用,而不用考虑下标的问题。
count($array) 统计一个数组里的所有元素,或者一个对象里的东西。从而的到数组的大小,也就是长度。然后通过for循环,把
i从0开始)。
is_array($arr) 判断变量是否是一个数组。传一个变量进去,如果这个变量是一个数组,则返回true,否则则返回false;
array_search (value) 在数组中搜索给定的值,如果成功则返回相应的键名 。当我们想知道一个数组中有没有一个数,可以使用这个函数,如果数组中有你想找的值,则返回这个值对应的键值。
array_reverse($arr),传进去一个数组,返回一个与这个数组相反的数组。
<?php $arr = array(1,9,4,2,8,10,5); $array = array_reverse($arr); print_r($array); .....结果...... Array ( [0] => 5 [1] => 10 [2] => 8 [3] => 2 [4] => 4 [5] => 9 [6] => 1 )
array_merge($arr1,$arr2),传进去两个数组,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。 如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
unset($value) 传进去的变量可以销毁一个数组,也可以销毁数组中的一个值,当通过数组[下标]的方式传入是,会销毁数组中的这个值,但是当传进去的数组时,会把整个数组进行销毁。
sort() 本函数对数组进行排序。当本函数结束时数组单元将被从最低到最高重新安排。当数组中值都是数字的时候,可以使用这个函数进行排序,不过排序的结果是数字按照从小到大的顺序。
<?php $arr = array(1,9,4,2,8,10,5); sort($arr); print_r($arr); .....结果..... Array ( [0] => 1 [1] => 2 [2] => 4 [3] => 5 [4] => 8 [5] => 9 [6] => 10 )
usort($array,func_name) 传进去一个数组,和一个自己写的方法名。使用用户自定义的比较函数对数组中的值进行排序,在上面的一个方法,你只能得到从小到大的顺序,但是我们的要求是从大到小,这就会用到这个函数,第二个参数是我们写的排序规则的函数。
<?php $arr = array(1,9,4,2,8,10,5); function mysort($a,$b){ //写自己的函数,使数组按照从大到小的顺序进行排序。 if($a == $b){ return 0; } return $a < $b ? 1 : -1; } usort($arr, 'mysort'); print_r($arr); ......结果...... Array ( [0] => 10 [1] => 9 [2] => 8 [3] => 5 [4] => 4 [5] => 2 [6] => 1 )
这里使用到可变函数。
我们在运算符那一节并没有讲到数组的运算符,其实数组也是有运算符的。
$a + $b 联合 $a 和 $b 的联合。运算符把右边的数组元素附加到左边的数组后面,两个数组中都有的键名,则只用左边数组中的,右边的被忽略。
$a == $b 相等 如果 $a 和 $b 具有相同的键/值对则为 TRUE 。
$a === $b 全等 如果 $a 和 $b 具有相同的键/值对并且顺序和类型都相同则为 TRUE 。
$a != $b 不等 如果 $a 不等于 $b 则为 TRUE 。
$a <> $b 不等 如果 $a 不等于 $b 则为 TRUE 。
$a !== $b 不全等 如果 $a 不全等于 $b 则为 TRUE 。
在这里看来数组的运算符也是很好理解的。
数组讲到这里,算是基本讲完了,数组在我们的开发中是经常用到的,不止上面的以为数组,有时候数组里面还可能是一个数组,只要数组的结构在脑海中有清晰的认识,不管有几个数组,都是可以解决的,同时数组的出现也引出了一些关于数组的算法。
以上就是PHP基础教程八之数组的内容,更多相关内容请关注PHP中文网(www.php.cn)!