Introduction aux tableaux
Création de tableaux
Croissance dynamique du tableau
Traversée du tableau
Fonctions associées du tableau
Opérateurs de tableau
Ce que nous avons appris auparavant, ce sont les variables et les constantes sont des éléments de données individuels, et parfois nous avons un tel besoin de stocker raisonnablement certaines valeurs du même type ou des valeurs non pertinentes, et lorsqu'elles sont utilisées, elles peuvent être utilisées selon certaines règles pour obtenir les données. Pour le moment, les variables précédentes ne peuvent pas répondre aux exigences, c'est pourquoi des tableaux sont utilisés ici.
Les tableaux en PHP sont différents des tableaux dans d'autres langages. Cela est également dû au manque de syntaxe du langage PHP. Quelle est la différence ?
Le soi-disant tableau est une collection d'éléments du même type de données ou de types de données différents disposés dans un certain ordre. Il s'agit d'une collection de variables qui nomme un nombre limité de variables avec un nom et les utilise ensuite. nombres pour les distinguer. Ce nom est appelé nom du tableau, le nombre est appelé indice. Les variables individuelles qui composent un tableau sont appelées composants du tableau, également appelés éléments du tableau, et parfois appelées variables d'indice.
La compréhension populaire de la définition d'un tableau est de stocker une collection de données
<?php //定义一个数组,里面存放的数据类型可以任意类型 $arr = array(12,true,false,'abcd',12.2); print_r($arr);//输出数组。 .....结果...... Array ( [0] => 12 [1] => 1 [2] => [3] => abcd [4] => 12.2 )
Vous pouvez voir que différents types de données sont stockés dans le tableau et qu'ils peuvent être générés. pendant la sortie. Et vous pouvez voir que lors de la sortie, chaque valeur a un indice correspondant. Cet indice est appelé une clé, et la valeur est une valeur. Lorsque nous voulons obtenir une certaine valeur, nous pouvons l'obtenir par clé.
$a = 数组名[键名] echo $arr[0]; .....结果...... 12
Lorsque la valeur clé du tableau est un nombre, son indice est calculé à partir de 0.
Alors, comment sont créés les tableaux ?
Tableaux d'index (les indices sont numériques) Il existe trois façons de définir des tableaux en PHP.
Tableau associatif (l'indice est une chaîne)
L'indice du tableau contient les deux.
Le premier type
<?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 )
Utilisez la structure du langage array() pour créer un nouveau tableau. Vous pouvez voir l'indice du. résultat de sortie C'est un nombre. Les données sont également récupérées via des indices numériques. Il s'agit du tableau d'index.
La deuxième méthode
<?php //关联数组,自己定义下标,用=>来定义键和值 $arr = array('a' => 1,'b' => 2,'c' => 'abcde', 'd' => true); print_r($arr); .....结果...... Array ( [a] => 1 [b] => 2 [c] => abcde [d] => 1 )
Cette méthode est également définie en utilisant la structure syntaxique array(), mais l'indice du tableau est défini par nous-mêmes, ici Vous pouvez définir votre propre indice en fonction de votre propre situation. Concernant la définition de la valeur clé, veuillez noter que la clé aura la conversion forcée suivante
Les chaînes contenant des valeurs entières légales seront converties en entiers. Par exemple, le nom de clé « 8 » sera en réalité stocké sous la forme 8. Mais "08" ne sera pas converti car il ne s'agit pas d'une valeur décimale légale.
Les nombres à virgule flottante seront également convertis en nombres entiers, ce qui signifie que leurs parties décimales seront arrondies. Par exemple, le nom de clé 8.7 sera en réalité stocké sous la forme 8.
Les valeurs booléennes seront également converties en entiers. Autrement dit, le nom de clé true sera en fait stocké sous la valeur 1 et le nom de clé false sera stocké sous la valeur 0.
Null sera converti en une chaîne vide, c'est-à-dire que le nom de clé null sera en fait stocké sous "".
Les tableaux et les objets ne peuvent pas être utilisés comme clés. Insister pour cela entraînera un avertissement : Type de décalage illégal.
Si plusieurs cellules utilisent le même nom de clé dans la définition du tableau, seule la dernière sera utilisée et les précédentes seront écrasées.
Pour obtenir la valeur dans le tableau associatif, vous devez utiliser votre propre clé définie.
Le troisième type
<?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 )
La définition du troisième type de tableau peut être directement définie à l'aide de crochets. Le système pensera par défaut qu'il s'agit d'un tableau. tableau et procédez à la création. Pour les indices, vous pouvez utiliser des nombres ou des chaînes. Mais si plusieurs unités utilisent le même nom de clé dans la définition du tableau, seule la dernière est utilisée et les précédentes sont écrasées.
La longueur du tableau PHP n'est pas fixe Lorsque vous avez fini de remplir les données, vous pouvez toujours remplir les données en même temps. Avec le temps, la longueur du tableau augmentera également en conséquence. C'est la croissance dynamique du tableau php.
<?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 )
Le code ci-dessus utilise une boucle for et utilise la troisième méthode de définition du tableau pour attribuer des valeurs. Cependant, vous pouvez voir que nous n'avons pas écrit l'indice entre les crochets du tableau, mais. le programme n'a pas signalé d'erreur, cela est dû à la croissance dynamique du tableau. Si aucune valeur de clé n'est spécifiée, PHP utilisera automatiquement la plus grande clé entière précédemment utilisée plus 1 comme nouvelle clé. Par conséquent, vous pouvez voir dans le résultat que l’indice augmente automatiquement à partir de 0.
Nous avons déjà introduit la création et l'utilisation de base des tableaux, alors comment extraire toutes les valeursdu tableau ? En PHP, vous pouvez utiliser un flux de contrôle de boucle pour obtenir les valeurs d'un tableau et parcourir le tableau pour obtenir les valeurs qu'il contient une par une.
for
Vous pouvez utiliser for pour obtenir les valeurs dans le tableau lors du parcours du tableau.
<?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)!