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
Mary-Kate Olsenoriginal
2024-12-15 16:07:10830parcourir

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);
}

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)

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

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