Maison >développement back-end >tutoriel php >Comment puis-je déterminer de manière fiable si un tableau PHP est une liste séquentielle ?

Comment puis-je déterminer de manière fiable si un tableau PHP est une liste séquentielle ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-20 12:14:09617parcourir

How Can I Reliably Determine if a PHP Array is a Sequential List?

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

  • Liste ( Tableau séquentiel) : Contient uniquement des touches numériques commençant à 0, formant un séquence.
$sequentialArray = [
    'apple', 'orange', 'tomato', 'carrot'
];
  • Tableau associatif : Se compose à la fois de chaînes et de touches numériques, permettant une organisation des données plus polyvalente.
$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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn