Maison  >  Article  >  développement back-end  >  Introduction à 13 fonctions de tri de tableaux en PHP

Introduction à 13 fonctions de tri de tableaux en PHP

不言
不言original
2018-07-23 11:59:041844parcourir

Le contenu partagé avec vous dans cet article concerne la fonction de tri des tableaux PHP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

  • S'il y a u dans la fonction, vous pouvez personnaliser la fonction de comparaison ; s'il y a k, vous pouvez le trier par clé ; inverse), ce sera dans l'ordre inverse ; s'il y a r doit être une association clé-valeur Sauf pour a(association) rsort() usort() sort(), tout le reste sans shuffle() est une clé-valeur. association. a l'association clé-valeur est conservée, mais les types numériques ne sont pas conservés. array_multisort()

  • Toutes les fonctions de tri suivantes agissent directement sur le tableau lui-même, plutôt que de renvoyer un nouveau tableau ordonné.

  • Pour les fonctions suivantes, l'ordre des éléments égaux dans le tableau après le tri n'est pas défini. (C'est-à-dire que l'ordre entre éléments égaux est instable, c'est-à-dire que le résultat de chaque tri d'éléments ayant la même valeur est incertain (tableau associatif)). php7

    asort arsort a réalisé un tri stable, un tri stable php5 : http://php.net/manual/zh/func...uasort

  • dans la paire contenant Soyez prudent lorsque vous triez des tableaux de valeurs de type mixte car sort() peut produire des résultats imprévisibles.

1.array_multisort

  • peut être utilisé pour trier plusieurs tableaux à la fois ou pour trier des tableaux multidimensionnels selon une certaine dimension ou plusieurs dimensions.

bool array_multisort ( array &$array1 [, mixed $array1_sort_order = SORT_ASC [, mixed $array1_sort_flags = SORT_REGULAR [, mixed $... ]]] )
Drapeau de type de tri :

  • SORT_REGULAR (par défaut) - comparez les éléments de la manière habituelle (sans modifier le type , Les lettres majuscules sensibles à la casse seront triées avant les lettres minuscules)

  • SORT_NUMERIC - Comparez selon la taille numérique

  • SORT_STRING - Comparez selon la taille numérique string (sensible à la casse)

  • SORT_LOCALE_STRING - Compare les chaînes en fonction des paramètres de localisation actuels. Il utilise des informations locales, qui peuvent être modifiées via setlocale().

  • SORT_NATURAL - "ordre naturel" des chaînes, similaire à natsort()

  • SORT_FLAG_CASE - peut être combiné (OU au niveau du bit) SORT_STRING Ou SORT_NATURAL pour trier les chaînes sans tenir compte de la casse.

  • 1.1 S'il y a plusieurs paramètres de tableau,

    sera trié en fonction du résultat de $array2, comme le $array1group by

  • 1.2 Tri insensible à la casse :
$array = array('Alpha', 'atomic', 'Beta', 'bank');
$array_lowercase = array_map('strtolower', $array); // 先复制一个转为小写数组

array_multisort($array_lowercase, SORT_ASC, SORT_STRING, $array);   // 先对小写数组排序,再排序原数组

print_r($array);
    1.3 Tri des résultats de la base de données
2.sort
function array_orderby()
{
    $args = func_get_args();
    $data = array_shift($args);
    foreach ($args as $n => $field) {
        if (is_string($field)) {
            $tmp = array();
            foreach ($data as $key => $row)
                $tmp[$key] = $row[$field];
            $args[$n] = $tmp;
            }
    }
    $args[] = &$data;
    call_user_func_array('array_multisort', $args);
    return array_pop($args);
}

    Supprimez les noms de clés d'origine pour trier le tableau (ordre)
bool sort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
  • les résultats du tri sont les mêmes que

    . sort($fruits, SORT_NATURAL | SORT_FLAG_CASE);natcasesort()

  • 3.rsort

    Tri inverse du tableau
4.asort
bool rsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

    Maintenir l'association clé-valeur. Principalement utilisé pour trier des tableaux associatifs où l'ordre des cellules est important.
5.arsort
bool asort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

    Ordre inverse et maintien de la relation d'index (association, inverse)
6.ksort
bool arsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

    Trier par
  • 键名

7.krsort
bool ksort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

    Appuyez sur
  • dans l'ordre inverse

    键名

8.usort
bool krsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

    Utilisez la fonction de comparaison définie par l'utilisateur pour comparez les tableaux
  • à trier, si le tableau à trier doit être trié selon un critère inhabituel, alors cette fonction doit être utilisée.

bool usort ( array &$array , callable $value_compare_func )
  • Lorsque

    est inférieur, égal ou supérieur à $value_compare_func( mixed $a, mixed $b ) , la fonction de comparaison doit renvoyer un inférieur à , égal à, ou Un entier supérieur à 0. $a$b

  • Tri des attributs d'objet

    usort($a, array("TestObj", "cmp_obj"))

  • 9.uasort

    Utiliser la comparaison définie par l'utilisateur les fonctions trient les valeurs dans un tableau et conservent les associations d'index
10.uksort
bool uasort ( array &$array , callable $value_compare_func )

    Utiliser les fonctions de comparaison définies par l'utilisateur Trier
  • dans le tableau

    键名

11.natcasesort
bool uksort ( array &$array , callable $key_compare_func )

    Tri naturel qui ne fait pas la distinction entre les lettres majuscules et minuscules (terminé) lettres puis chiffres), conserver l'association clé valeur
12.natsort
bool natcasesort ( array &$array )

    Utiliser l'algorithme de "tri naturel" pour trier le tableau, Maintenir l'association clé-valeur
13.shuffle
bool natsort ( array &$array )

    Cette fonction mélange (organise de manière aléatoire l'ordre des cellules) un tableau. Les valeurs clés ne sont pas associées
Recommandations associées :
bool shuffle ( array &$array )

Introduction à 10 fonctions de chaîne couramment utilisées en PHP et comment les utiliser

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