Détermination des tableaux associatifs et séquentiels en PHP
PHP maintient tous les tableaux comme associatifs, ce qui nécessite des méthodes alternatives pour faire la distinction entre associatif et séquentiel tableaux, en particulier ceux contenant uniquement des touches numériques commençant par 0.
Solution : fonction array_is_list()
PHP 8.1 introduit la fonction array_is_list(), fournissant une solution simple :
var_dump(array_is_list([])); // true var_dump(array_is_list(['a', 'b', 'c'])); // true var_dump(array_is_list([0 => 'a', 1 => 'b', 2 => 'c'])); // true var_dump(array_is_list([1 => 'a', 0 => 'b', 2 => 'c'])); // false var_dump(array_is_list(['a' => 'a', 'b' => 'b', 'c' => 'c'])); // false
Fonction personnalisée pour le code hérité :
Si vous travaillez avec du code hérité qui ne fonctionne pas prend en charge PHP 8.1, la fonction personnalisée suivante peut être utilisée :
function array_is_list(array $arr) { if ($arr === []) { return true; } return array_keys($arr) === range(0, count($arr) - 1); }
Cette fonction atteint les mêmes fonctionnalités que la fonction array_is_list(), la rendant portable sur différentes versions de PHP.
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!