Array array
Qu'est-ce qu'un tableau ? Les tableaux sont des variables spéciales qui peuvent contenir plusieurs valeurs en même temps. Un tableau en PHP est en fait une carte ordonnée. Une carte est un type qui associe des valeurs à des clés. Ce type est optimisé de plusieurs manières, il peut donc être traité comme un véritable tableau, ou une liste (vecteur), une table de hachage (une implémentation d'une carte), un dictionnaire, un ensemble, une pile, une file d'attente et bien d'autres. plus de possibilités. Étant donné que la valeur d'un élément du tableau peut également être un autre tableau, les structures arborescentes et les tableaux multidimensionnels sont également autorisés.
De manière générale, les méthodes de définition sont les suivantes :
Méthode 1 :
$a=array(1,2,4,5,6); <?php $array=array('a','b','c'); $array[]='simon'; print_r($array); ?>
Les résultats d'exécution sont les suivants.
Tableau
(
[0]=>a
[1]=>b
[2]= >c
[3]=>simon
)
Méthode 2 :
$a=array(key1=>value1,key2=>value2,key3=>value3);
Méthode 3 :
$a[key1]=value1; $a[key2]=value2;
Méthode 4 : Définir le tableau entre crochets []
Cela peut être écrit après PHP version 5.4, avec la nouvelle syntaxe d'abréviation de tableau.
Les versions PHP 5.3 et antérieures n'acceptent pas une écriture de ce type...
$data = [ 'start_time' => '123', 'end_time' =>'456'];
Expliquer ces structures dépasse le cadre de ce manuel, mais au moins un exemple sera fourni pour chacune structure. Pour plus d’informations sur ces structures, il est recommandé de consulter d’autres ouvrages sur ce vaste sujet.
Syntaxe
Définir un tableau array()
Vous pouvez utiliser la structure du langage array() pour créer un nouveau tableau. Il accepte n’importe quel nombre de paires clé => valeur séparées par des virgules.
array( key => value , ... ) // 键(key)可是是一个整数 integer 或字符串 string // 值(value)可以是任意类型的值
La virgule après le dernier élément du tableau peut être omise. Habituellement utilisé dans les définitions de tableaux sur une seule ligne, tels que array(1, 2) au lieu de array(1, 2, ). Il est courant de laisser la dernière virgule dans les définitions de tableaux multilignes pour faciliter l'ajout d'une nouvelle cellule. Depuis la version 5.4, il est possible d'utiliser la syntaxe de définition de tableau courte, en utilisant [] au lieu de array().
Exemple n°1 Un simple tableau
<?php $array = array( "foo" => "bar", "bar" => "foo", ); // 自 PHP 5.4 起 $array = [ "foo" => "bar", "bar" => "foo", ]; ?>
clé peut être un entier ou une chaîne. la valeur peut être de n’importe quel type.
De plus, key aura la coercition 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 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 unités 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.
Exemple n°2 : Exemple de coercition et d'écrasement de type
<?php $array = array( 1 => "a", "1" => "b", 1.5 => "c", true => "d", ); var_dump($array); ?>
La routine ci-dessus affichera :
array(1) { [1]=> string(1) "d" }
Toutes les clés ci-dessus les noms d'exemples sont contraints à 1, puis chaque nouvelle unité écrasera la valeur précédente, ne laissant qu'un "d" à la fin.
Les tableaux PHP peuvent contenir à la fois des noms de clés entiers et des noms de chaîne, car PHP ne fait pas réellement de distinction entre les tableaux indexés et les tableaux associatifs.
Si aucune clé n'est spécifiée pour la valeur donnée, la valeur d'index entière la plus grande actuelle est prise et le nouveau nom de clé sera cette valeur plus un. Si le nom de clé spécifié a déjà une valeur, la valeur sera écrasée.
Exemple n°3 Mélange de noms de clés entières et de chaînes
<?php $array = array( "foo" => "bar", "bar" => "foo", 100 => -100, -100 => 100, ); var_dump($array); ?>
La routine ci-dessus affichera :
array(4) {
["foo"]=>
string(3) "bar"
["bar"]=>
string(3) "foo "
[100]=>
int(-100)
[-100]=>
int(100)
}
la clé est facultative. Si cela n’est pas spécifié, PHP utilisera automatiquement la plus grande clé entière précédemment utilisée plus 1 comme nouvelle clé.
Exemple n°4 Tableau d'index sans nom de clé
<?php $array = array("foo", "bar", "hallo", "world"); var_dump($array); ?>
La routine ci-dessus affichera :
array(4) {
[0]=>
string(3) "foo"
[1]=>
string(3) "bar"
[2]=>
string(5) "bonjour"
[3]=>
string(5) "monde"
>
Vous pouvez également spécifier des noms de clés uniquement pour certaines unités et laisser d'autres vides :
Exemple n°5 Spécifiez les noms de clés uniquement pour certaines unités
<?php $array = array( "a", "b", 6 => "c", "d", ); var_dump($array); ?>
La routine ci-dessus affichera :
array(4) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[6]=>
string(1) "c"
[7]=>
string(1) "d"
}
Vous pouvez voir que la dernière valeur "d" est automatiquement attribuée au nom de la clé 7. En effet, la clé entière la plus grande précédente était 6.
用方括号语法访问数组单元 ¶
数组单元可以通过 array[key] 语法来访问。
Example #6 访问数组单元
<?php $array = array( "foo" => "bar", 42 => 24, "multi" => array( "dimensional" => array( "array" => "foo" ) ) ); var_dump($array["foo"]); var_dump($array[42]); var_dump($array["multi"]["dimensional"]["array"]); ?>
以上例程会输出:
string(3) "bar"
int(24)
string(3) "foo"
Note:
方括号和花括号可以互换使用来访问数组单元(例如 $array[42] 和 $array{42} 在上例中效果相同)。
自 PHP 5.4 起可以用数组间接引用函数或方法调用的结果。之前只能通过一个临时变量。
自 PHP 5.5 起可以用数组间接引用一个数组原型。
Example #7 数组间接引用
<?php function getArray() { return array(1, 2, 3); } // on PHP 5.4 $secondElement = getArray()[1]; // previously $tmp = getArray(); $secondElement = $tmp[1]; // or list(, $secondElement) = getArray(); ?>
Note:
试图访问一个未定义的数组键名与访问任何未定义变量一样:会导致 E_NOTICE 级别错误信息,其结果为 NULL。
更多关于PHP数组的问题可以访问相关网站:http://www.php.cn/search/PHP数组.html
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!