Maison  >  Article  >  développement back-end  >  Comment résoudre le problème du tri et de la brassage des tableaux en PHP ?

Comment résoudre le problème du tri et de la brassage des tableaux en PHP ?

WBOY
WBOYoriginal
2021-11-08 17:54:054782parcourir

Dans l'article précédent « Comment récupérer le nom de la clé dans le tableau ? Comment convertir la casse des noms de clés ? " fournit une introduction détaillée aux opérations de nom de clé en PHP, telles que l'obtention des noms de clé et la conversion de la casse des noms de clé. Dans cet article, nous verrons comment trier plusieurs tableaux en PHP. J'espère que cela sera utile à tout le monde. !

Comment résoudre le problème du tri et de la brassage des tableaux en PHP ?

Dans l'article précédent, nous avons appris que si nous voulons obtenir tous les noms d'éléments du tableau, nous devons utiliser la fonction array_keys si nous voulons convertir la casse du. noms de clés de tableau, nous devons utiliser la fonction array_change_key_case pour fonctionner. Tout cela fait partie du fonctionnement du tableau. Nous avons déjà discuté dans "Comment trier les tableaux PHP (Certains d'entre eux sont brièvement présentés dans "Images et textes détaillés" array_keys函数来实现,想要转换数组键名的大小写需要通过array_change_key_case函数来进行操作。这都是属于数组操作的一部分,我们之前在《怎样去给PHP数组进行排序(图文详解)》中简单的介绍了一些。

在PHP中怎样才能对多个数组进行排序?有怎样随机的对数组进行随机排序呢?在PHP中有内置的array_multisort函数与shuffle函数能够对数组进行升序排列和随机排序,下面我们一起来看一下吧。

<strong><span style="font-size: 20px;">array_multisort</span></strong>函数-对多个数组进行排序

在PHP中array_multisort函数能够输入一个或者多个数组,函数会先给第一个数组排序,然后接着对下一组进行排序。array_multisort函数的基本语法格式如下:

array_multisort(array1,sorting order,sorting type,array2,array3...)

其中需要注意的是:

参数array1是必须要有的,是要进行排序的数组,参数array2、3是可选的,也是要进行排序的数组。参数sorting order也是一个可选的参数,在默认的情况下参数表示的是SORT_ASC,表示的是数组排序是升序,当单数sorting order为SORT_DESC的时候,表示的是按降序排列。

参数sorting type也是一个可选参数,默认情况下的值为SORT_REGULAR表示的是,数组排序按照常规顺序排列。当参数的值为SORT_NUMERIC 的时候表示的是将数组中的元素当做数字来进行处理。当参数的值为SORT_STRING表示的是将数组中的元素当做字符串来进行处理。当参数的值为SORT_LOCALE_STRING表示的是一颗通过setlocale函数来进行更改的作为字符串处理。当参数的值为SORT_NATURAL表示的是类似 natsort() 的自然排序。

使用array_multisort函数对字符串进行排序,键名为字符串的元素,键名会保留,但是键名为数字的会被重新索引。这个索引规则还是一样的。

如果排序成功的话,返回的结果是true;如果排序失败,返回的结果是false

下面我们通过示例来看一下array_multisort函数的基本用法,示例如下:

<?php
$a1=array("Dog","Cat");
$a2=array("Fw","Marry");
array_multisort($a1,$a2);
print_r($a1);
echo &#39;<br/>&#39;;
print_r($a2);
?>

输出结果:

Comment résoudre le problème du tri et de la brassage des tableaux en PHP ?

上述示例中,返回的结果是进行了升序的排序,下面我们来看一下,当两个值相同的时候,输出结果会有什么变化,示例如下:

<?php
$a1=array("Dog","Dog","Cat");
$a2=array("Pluto","Fw","Marry");
array_multisort($a1,$a2);
print_r($a1);
echo &#39;<br/>&#39;;
print_r($a2);
?>

输出结果:

Comment résoudre le problème du tri et de la brassage des tableaux en PHP ?

上述示例中,当数组中的两个元素都相同的时候,并不会被覆盖,而是键名不同重新排序。

下面我们在来看一个综合的实例,当我们合并两个数组并且按照降序进行排列,输出结果会发生什么变化,示例如下:

<?php
$a1=array(1,30,15,7,25);
$a2=array(4,30,20,41,66);
$num=array_merge($a1,$a2);
array_multisort($num,SORT_DESC,SORT_NUMERIC);
print_r($num);
?>

输出结果:

Comment résoudre le problème du tri et de la brassage des tableaux en PHP ?

上述中我们通过array_multisort函数能够对数组元素进行排序,下面我们来介绍一下shuffle函数。它能够将数组打乱。

<strong><span style="font-size: 20px;">shuffle</span></strong>函数-重新排序数组

在PHP中既然有函数能够将数组元素进行有序的排序,那同样的也有办法能够将数组进行重新排序,也就是将数组打乱。shuffle函数的基本语法结构如下:

shuffle(array)

其中参数array就是需要进行重新排序的数组,shuffle.

🎜Comment trier plusieurs tableaux en PHP ? Comment trier aléatoirement un tableau de manière aléatoire ? Il existe des fonctions array_multisort et shuffle intégrées en PHP qui peuvent trier les tableaux par ordre croissant et de manière aléatoire. Examinons-les ensemble. 🎜🎜<strong><span style="font-size: 20px;">array_multisort</span></strong> Fonction - Trier plusieurs tableaux🎜🎜En PHP, la fonction array_multisort peut saisir un ou plusieurs tableaux. La fonction triera d'abord le premier tableau, puis continuera à trier le suivant. groupe. Le format de syntaxe de base de la fonction array_multisort est le suivant : 🎜
<?php
$my_array = array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow","e"=>"purple");
shuffle($my_array);
print_r($my_array);
?>
🎜Ce qu'il faut noter est :
🎜🎜Le paramètre array1 est requis pour trier Array , les paramètres array2 et 3 sont optionnels et sont aussi les tableaux à trier. Le paramètre ordre de tri est également un paramètre facultatif. Par défaut, le paramètre représente SORT_ASC, ce qui indique que le tri du tableau est croissant lorsque l'ordre de tri singulier est SORT_DESC. Quand, cela signifie trier par ordre décroissant. 🎜🎜Le paramètre type de tri est également un paramètre facultatif. La valeur par défaut est SORT_REGULAR, ce qui signifie que le tableau est trié dans un ordre régulier. Lorsque la valeur du paramètre est SORT_NUMERIC , cela signifie que les éléments du tableau sont traités comme des nombres. Lorsque la valeur du paramètre est SORT_STRING, cela signifie que les éléments du tableau sont traités comme des chaînes. Lorsque la valeur du paramètre est SORT_LOCALE_STRING, cela signifie qu'une chaîne est modifiée via la fonction setlocale. Lorsque la valeur du paramètre est SORT_NATURAL, elle représente un tri naturel similaire à natsort(). 🎜🎜Utilisez la fonction array_multisort pour trier les chaînes. Les noms de clé des éléments dont les noms de clé sont des chaînes seront conservés, mais ceux dont les noms de clé sont des nombres seront réindexés. Les règles d'indexation sont toujours les mêmes. 🎜🎜Si le tri est réussi, le résultat renvoyé est true ; si le tri échoue, le résultat renvoyé est false.
🎜🎜Jetons un coup d'œil à l'utilisation de base de la fonction array_multisort à travers un exemple. L'exemple est le suivant : 🎜rrreee🎜Résultat de sortie :
🎜🎜Comment résoudre le problème du tri et de la brassage des tableaux en PHP ?🎜🎜Dans l'exemple ci-dessus, le les résultats renvoyés sont par ordre croissant de tri, voyons comment les résultats de sortie changeront lorsque les deux valeurs​​sont identiques :
🎜rrreee🎜Résultats de sortie :
🎜🎜Comment résoudre le problème du tri et de la brassage des tableaux en PHP ?🎜🎜 Dans l'exemple ci-dessus, lorsque deux éléments du tableau sont tous identiques, ils ne seront pas écrasés, mais seront réorganisés avec des noms de clés différents. 🎜🎜Regardons un exemple complet ci-dessous. Lorsque nous fusionnons deux tableaux et les organisons par ordre décroissant, qu'arrive-t-il au résultat de sortie ? L'exemple est le suivant : 🎜rrreee🎜Résultat de sortie : 🎜🎜Comment résoudre le problème du tri et de la brassage des tableaux en PHP ?🎜🎜Dans ce qui précède, on passe array_multisortLa fonction peut trier les éléments d'un tableau. Introduisons la fonction shuffle. Il peut mélanger le tableau. 🎜🎜<strong><span style="max-width:90%">shuffle</span></strong> Fonction - Réorganiser le tableau🎜🎜Puisqu'il existe des fonctions en PHP qui peuvent trier les éléments du tableau dans l'ordre, il existe également des moyens de réorganiser le tableau, c'est-à-dire de perturber le tableau. La structure syntaxique de base de la fonction shuffle est la suivante : 🎜rrreee🎜Le tableau de paramètres est le tableau qui doit être réorganisé. La fonction shuffle() réorganise les éléments dans. le tableau dans un ordre aléatoire. Les noms de clés d'origine du tableau seront supprimés et le nouveau tableau aura de nouveaux noms de clés. 🎜

函数如果排序成功,返回的结果是true,如果失败,返回的结果是flase

下面我们通过示例来看一下shuffle函数的使用,示例如下:

<?php
$my_array = array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow","e"=>"purple");
shuffle($my_array);
print_r($my_array);
?>

输出结果:

Comment résoudre le problème du tri et de la brassage des tableaux en PHP ?

Comment résoudre le problème du tri et de la brassage des tableaux en PHP ?

上述示例中,通过shuffle函数将数组进行重新排列,并且每执行一次数组的排列顺序就会改变。

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

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