Différenciation des tableaux PHP associatifs et séquentiels
PHP reconnaît intrinsèquement tous les tableaux comme associatifs, ce qui rend difficile la distinction entre les tableaux qui se comportent comme des listes. Pour résoudre ce problème, nous explorons une méthode fiable pour déterminer si un tableau est considéré comme une liste.
Liste vs tableaux associatifs
$sequentialArray = [ 'apple', 'orange', 'tomato', 'carrot' ];
$assocArray = [ 'fruit1' => 'apple', 'fruit2' => 'orange', 'veg1' => 'tomato', 'veg2' => 'carrot' ];
Identification des listes en PHP 8.1 et Beyond
PHP 8.1 a introduit array_is_list() pour vérifier facilement si un tableau est une liste :
array_is_list($sequentialArray); // true
Solution héritée pour les versions PHP antérieures
Pour répondre aux versions PHP antérieures à 8.1, nous pouvons définir un function :
function array_is_list(array $arr) { if ($arr === []) { return true; } return array_keys($arr) === range(0, count($arr) - 1); }
Test de la fonction
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
En tirant parti de ces méthodes, les développeurs peuvent efficacement distinguer les tableaux associatifs et séquentiels, permettant ainsi un tableau plus précis et plus efficace gestion dans leurs applications 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!