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
Libérer: 2024-12-20 12:14:09
original
573 Les gens l'ont consulté

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'
];
Copier après la connexion
  • 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'
];
Copier après la connexion

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
Copier après la connexion

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);
}
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal