Identification des tableaux associatifs ou séquentiels en PHP
Avec le traitement par défaut des tableaux comme associatifs par PHP, la distinction entre les tableaux séquentiels et associatifs pose un défi . Cela découle de la nécessité de catégoriser les tableaux en « listes » (touches numériques commençant à 0) ou en tableaux associatifs (clés nommées).
Identifier les tableaux séquentiels
Pour déterminer si un tableau est séquentiel, la fonction suivante peut être utilisée :
function array_is_list(array $arr) { if ($arr === []) { return true; } return array_keys($arr) === range(0, count($arr) - 1); }
En utilisant cette fonction, nous pouvons différencier les tableaux suivants :
$arr1 = ['apple', 'orange', 'tomato', 'carrot']; $arr2 = ['fruit1' => 'apple', 'fruit2' => 'orange', 'veg1' => 'tomato', 'veg2' => 'carrot']; var_dump(array_is_list($arr1)); // true (sequential array) var_dump(array_is_list($arr2)); // false (associative array)
Legacy Code et PHP 8.1
Pour PHP 8.1 et supérieur, la fonction intégrée array_is_list() élimine le besoin pour la fonction personnalisée :
var_dump(array_is_list(['a', 'b', 'c'])); // true var_dump(array_is_list(['1' => 'a', '0' => 'b', '2' => 'c'])); // true var_dump(array_is_list(['a' => 'a', 'b' => 'b', 'c' => 'c'])); // false
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!