Maison  >  Article  >  développement back-end  >  Comment déterminer l'ordre du tableau php

Comment déterminer l'ordre du tableau php

王林
王林original
2023-05-07 17:22:07514parcourir

PHP est un langage de script largement utilisé qui prend en charge de nombreuses structures de données, parmi lesquelles les tableaux sont l'un des plus couramment utilisés. En PHP, il est important de déterminer si un tableau est ordonné car cela peut affecter les performances et l'exactitude du code. Cet article explique comment déterminer si un tableau PHP est ordonné.

1. Classification des tableaux PHP

Avant de comprendre comment déterminer si un tableau PHP est en ordre, nous devons comprendre la classification des tableaux PHP. Selon le type d'indice du tableau, les tableaux PHP peuvent être divisés en deux types :

  1. Tableau d'index : l'indice augmente continuellement à partir de 0, et l'indice n'a pas besoin d'être écrit
  2. Tableau associatif : l'indice peut être ; n'importe quelle chaîne ou nombre, l'indice doit être écrit explicitement.

2. Déterminer si le tableau d'index est en ordre

Dans un tableau d'index, nous pouvons utiliser la fonction de tri pour déterminer s'il est en ordre. PHP fournit de nombreuses fonctions de tri, telles que sort(), rsort(), asort(), arsort(), etc. Ce qui suit est un exemple de code qui utilise la fonction sort() pour déterminer si le tableau d'index est en ordre :

function is_sorted($arr) {
  sort($arr);
  return $arr === range(min($arr), max($arr));
}

Ce code utilise la fonction sort() pour trier le tableau et utilise la fonction range() pour générer le même séquence de nombres consécutifs comme tableau d’origine. Vous pouvez ensuite comparer les deux tableaux pour déterminer si le tableau d'origine est en ordre.

3. Déterminer si le tableau associatif est en ordre

Dans un tableau associatif, nous devons utiliser d'autres méthodes pour déterminer s'il est en ordre. Voici un exemple de code qui utilise la fonction array_keys() pour déterminer si un tableau associatif est en ordre :

function is_sorted_assoc(array $arr) {
    $keys = array_keys($arr);
    $prev_key = $keys[0];
    foreach ($keys as $key) {
        if ($prev_key > $key) {
            return false;
        }
        $prev_key = $key;
    }
    return true;
}

Ce code utilise la fonction array_keys() pour extraire les valeurs clés du tableau, puis parcourt ces valeurs clés et compare leur ordre de taille une par une. Si les valeurs clés ne sont pas classées par ordre croissant, renvoyez false, sinon renvoyez true.

4. Déterminer si le tableau multidimensionnel est en ordre

Dans un tableau multidimensionnel, nous devons trier chaque sous-tableau séparément, puis déterminer s'ils sont en ordre. Ce qui suit est un exemple de code qui utilise la fonction usort() pour déterminer si un tableau multidimensionnel est ordonné :

function is_sorted_multi(array $array): bool
{
    foreach ($array as $sub_array) {
        usort($sub_array, function ($a, $b) {
            return $a <=> $b;
        });
        if ($sub_array !== array_values($sub_array)) {
            return false;
        }
    }
    return true;
}

Ce code utilise la fonction usort() pour trier le sous-tableau et utilise la fonction array_values() pour générer une séquence. de nombres consécutifs. Enfin, comparez si le tableau trié et la séquence générée sont égaux pour déterminer si le sous-tableau est en ordre. Si tous les sous-tableaux sont triés, renvoyez vrai, sinon renvoyez faux.

Résumé : Cet article explique comment déterminer si un tableau PHP est en ordre. Pour les tableaux indexés, nous pouvons utiliser la fonction de tri pour juger ; pour les tableaux associatifs, nous pouvons utiliser la fonction array_keys() pour juger ; pour les tableaux multidimensionnels, nous devons trier chaque sous-tableau séparément et juger s'ils sont dans l'ordre. . Dans le développement réel, nous devons choisir une méthode appropriée pour déterminer si le tableau est ordonné en fonction des besoins réels.

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