Cet article présente plusieurs méthodes de définition de tableaux en PHP. Les amis dans le besoin peuvent se référer à
Array Array
Les tableaux en PHP sont 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 en cours 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 comme celle-ci...
$data = [ 'start_time' => '123', 'end_time' =>'456' ];
Expliquer ces structures dépasse le cadre de ce manuel, mais pour Au moins un exemple de chaque structure sera fourni. 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 peut être un entier ou une chaîne string
// value ) peut être une valeur de n'importe quel type
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 une syntaxe de définition de tableau courte, en utilisant [] au lieu de array().
Exemple n°1 Un tableau simple
<?php $array = array( "foo" => "bar", "bar" => "foo", ); // 自 PHP 5.4 起 $array = [ "foo" => "bar", "bar" => "foo", ]; ?>
la 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 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 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"
}
Dans l'exemple ci-dessus, tous les noms de clés sont forcés d'être convertis en 1, puis chaque nouveau l'unité écrasera la valeur précédente, ne laissant qu'un seul "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) "hallo"
[3]=>
string(5) "world"
>
Vous pouvez également spécifier des noms de clé 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"
}
可以看到最后一个值 "d" 被自动赋予了键名 7。这是由于之前最大的整数键名是 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(); ?>
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!