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

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

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-09 04:25:11645parcourir

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

Détermination de la nature des tableaux PHP : associatifs ou séquentiels

En PHP, les tableaux sont intrinsèquement associatifs, dépourvus de mécanismes intégrés pour différencier les clés numériques à partir de 0 ( tableaux séquentiels) et des clés de chaîne arbitraires (tableaux associatifs). Cette distinction peut être cruciale pour divers scénarios de programmation.

Discerner les tableaux séquentiels et associatifs

Pour déterminer si un tableau est séquentiel, vous pouvez exploiter la nouvelle fonction array_is_list() dans PHP 8.1. Cependant, pour les anciennes versions de PHP, une fonction personnalisée peut constituer une alternative pratique :

function array_is_list(array $arr)
{
    if ($arr === []) {
        return true;
    }
    return array_keys($arr) === range(0, count($arr) - 1);
}

Cette fonction vérifie si le tableau est vide ou si ses clés sont une séquence continue de nombres commençant à 0. Si les deux conditions sont remplies, le tableau est considéré comme séquentiel.

Exemple d'utilisation

Pour illustrer la fonctionnalité de array_is_list() 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

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