Maison > développement back-end > tutoriel php > Comment puis-je faire la différence entre les tableaux séquentiels et associatifs en PHP ?

Comment puis-je faire la différence entre les tableaux séquentiels et associatifs en PHP ?

Mary-Kate Olsen
Libérer: 2024-12-15 16:07:10
original
829 Les gens l'ont consulté

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

Identification des tableaux associatifs ou séquentiels en PHP

Avec le traitement par défaut des tableaux comme associatifs par PHP, la distinction entre les tableaux séquentiels et associatifs pose un défi . Cela découle de la nécessité de catégoriser les tableaux en « listes » (touches numériques commençant à 0) ou en tableaux associatifs (clés nommées).

Identifier les tableaux séquentiels

Pour déterminer si un tableau est séquentiel, la fonction suivante peut être utilisée :

function array_is_list(array $arr)
{
    if ($arr === []) {
        return true;
    }
    return array_keys($arr) === range(0, count($arr) - 1);
}
Copier après la connexion

En utilisant cette fonction, nous pouvons différencier les tableaux suivants :

$arr1 = ['apple', 'orange', 'tomato', 'carrot'];
$arr2 = ['fruit1' => 'apple', 'fruit2' => 'orange', 'veg1' => 'tomato', 'veg2' => 'carrot'];

var_dump(array_is_list($arr1)); // true (sequential array)
var_dump(array_is_list($arr2)); // false (associative array)
Copier après la connexion

Legacy Code et PHP 8.1

Pour PHP 8.1 et supérieur, la fonction intégrée array_is_list() élimine le besoin pour la fonction personnalisée :

var_dump(array_is_list(['a', 'b', 'c'])); // true
var_dump(array_is_list(['1' => 'a', '0' => 'b', '2' => 'c'])); // true
var_dump(array_is_list(['a' => 'a', 'b' => 'b', 'c' => 'c'])); // false
Copier après la connexion

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