Maison >développement back-end >tutoriel php >Comment puis-je distinguer les tableaux associatifs et séquentiels en PHP ?

Comment puis-je distinguer les tableaux associatifs et séquentiels en PHP ?

DDD
DDDoriginal
2025-01-01 07:13:11291parcourir

How Can I Distinguish Between Associative and Sequential Arrays in PHP?

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!

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