Maison >développement back-end >Problème PHP >Comment trier par valeur de tableau en php

Comment trier par valeur de tableau en php

PHPz
PHPzoriginal
2023-04-26 09:08:282832parcourir

En PHP, nous pouvons trier le tableau par ordre croissant et décroissant en utilisant les fonctions intégrées sort() et rsort(). Cependant, ces deux fonctions ne peuvent trier les clés du tableau que par valeur de clé. Si vous souhaitez trier les valeurs du tableau par valeur de clé, vous devez utiliser d'autres fonctions. sort()rsort() 对数组进行升序排序和降序排序。不过这两个函数只能通过键值对数组的键进行排序,如果想按照键值对数组中的值进行排序,就需要使用其他的函数。

下面介绍几种按数组值排序的方法:

1. 使用 asort()arsort()

在 PHP 中,我们可以使用内置函数 asort() 对数组按照值进行升序排序,使用 arsort() 对数组按照值进行降序排序。这两个函数还会保留键值之间的关联关系。

$numbers = array(3, 1, 5, 2, 4);
asort($numbers);
print_r($numbers);
// Output: Array ( [1] => 1 [3] => 2 [0] => 3 [4] => 4 [2] => 5 )

arsort($numbers);
print_r($numbers);
// Output: Array ( [2] => 5 [4] => 4 [0] => 3 [3] => 2 [1] => 1 )

注意,如果我们使用 sort()rsort() 对键值对数组进行排序,则会丢失键值与值之间的关联。而 asort()arsort() 则可以保留键值与值之间的关联。

2. 使用 usort()

PHP 还提供了 usort() 函数,可以按照自定义的比较函数对数组进行排序。比较函数需要接受两个参数,如果第一个参数小于第二个参数,函数返回负值;如果两个参数相等,函数返回 0;如果第一个参数大于第二个参数,函数返回正值。

下面是一个使用 usort() 对数组按照值进行升序排序的示例:

$numbers = array(3, 1, 5, 2, 4);

function compare_function($a, $b)
{
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

usort($numbers, &#39;compare_function&#39;);
print_r($numbers);
// Output: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )

3. 使用 array_multisort()

还有一种常用的方式是使用 array_multisort() 函数,该函数可以同时对多个数组进行排序。我们可以传入一个数组和排序方式,然后函数会根据排序方式按照数组的值进行排序。

下面是一个使用 array_multisort() 函数对数组进行升序排序的示例:

$numbers = array(3, 1, 5, 2, 4);
array_multisort($numbers, SORT_ASC);
print_r($numbers);
// Output: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )

注意,array_multisort() 函数会对所有的数组都进行排序。如果需要按照某个特定数组进行排序,则需要把这个数组放在第一个参数的位置。

总结

按数组值排序在 PHP 中有多种实现方式,以上介绍的只是其中的几种。在使用这些函数时,需要注意参数的类型和位置,以及排序方式的选择。同时,当有多个参数需要排序时,使用 array_multisort()

Voici plusieurs méthodes de tri par valeurs de tableau : #🎜🎜#

1 Utilisez asort() et arsort() <.>#🎜🎜#En PHP, nous pouvons utiliser la fonction intégrée asort() pour trier le tableau par ordre croissant par valeur, et utiliser arsort() pour trier le tableau par valeur. Ces deux fonctions préservent également l'association entre les valeurs clés. #🎜🎜#rrreee#🎜🎜#Notez que si nous utilisons sort() et rsort() pour trier le tableau par valeur de clé, la clé et la valeur seront perdues la connexion entre. Et asort() et arsort() peuvent préserver l'association entre les clés et les valeurs. #🎜🎜#

2. Utilisez usort()

#🎜🎜#PHP fournit également la fonction usort(), qui peut être comparée selon La fonction personnalisée trie un tableau. La fonction de comparaison doit accepter deux paramètres. Si le premier paramètre est inférieur au deuxième paramètre, la fonction renvoie une valeur négative si les deux paramètres sont égaux, la fonction renvoie 0 si le premier paramètre est supérieur au deuxième paramètre ; la fonction renvoie une valeur positive. #🎜🎜##🎜🎜#Ce qui suit est un exemple d'utilisation de usort() pour trier un tableau par ordre croissant par valeur : #🎜🎜#rrreee

3. ()

#🎜🎜#Une autre méthode courante consiste à utiliser la fonction array_multisort(), qui peut trier plusieurs tableaux en même temps. Nous pouvons transmettre un tableau et une méthode de tri, puis la fonction triera les valeurs du tableau en fonction de la méthode de tri. #🎜🎜##🎜🎜#Ce qui suit est un exemple d'utilisation de la fonction array_multisort() pour trier un tableau par ordre croissant : #🎜🎜#rrreee#🎜🎜#Remarque, array_multisort () code> la fonction triera tous les tableaux. Si vous devez trier selon un tableau spécifique, vous devez mettre ce tableau dans le premier paramètre. #🎜🎜#

Résumé

#🎜🎜#Il existe de nombreuses façons d'implémenter le tri par valeurs de tableau en PHP, et celles ci-dessus ne sont que quelques-unes d'entre elles. Lors de l'utilisation de ces fonctions, vous devez faire attention au type et à la position des paramètres, ainsi qu'au choix de la méthode de tri. Dans le même temps, lorsque plusieurs paramètres doivent être triés, l'utilisation de array_multisort() peut rendre le traitement plus pratique. #🎜🎜#

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