Home  >  Article  >  Backend Development  >  How to solve the problem of sorting and shuffling arrays in PHP?

How to solve the problem of sorting and shuffling arrays in PHP?

WBOY
WBOYOriginal
2021-11-08 17:54:054845browse

In the previous article "How to get the key name in the array? How to convert the case of key names? 》Introduces in detail the key name operation in PHP, the related operations of obtaining the key name and converting the case of the key name. In this article, we will take a look at how to sort multiple arrays in PHP. I hope it will be helpful to everyone. help!

How to solve the problem of sorting and shuffling arrays in PHP?

In the previous article we learned that if you want to get all the element names in the array, you need to use the array_keys function. If you want to convert the array The case of the key name needs to be operated through the array_change_key_case function. This is all part of array operations. We briefly introduced some of them in "How to sort PHP arrays (detailed graphic and text explanation)".

How to sort multiple arrays in PHP? How to randomly sort an array randomly? There are built-in array_multisort and shuffle functions in PHP that can sort arrays in ascending order and randomly. Let’s take a look at them together.

<strong><span style="font-size: 20px;">array_multisort</span></strong>Function - Sort multiple arrays

In PHParray_multisortThe function can input one or more arrays. The function will sort the first array first, and then sort the next group. array_multisortThe basic syntax format of the function is as follows:

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

It should be noted that:

The parameter array1 is required, is the array to be sorted. Parameters array2 and 3 are optional and are also the array to be sorted. The parameter sorting order is also an optional parameter. By default, the parameter represents SORT_ASC, which indicates that the array sorting is in ascending order. When the singular sorting order is SORT_DESC, It means sorting in descending order.

Parametersorting type is also an optional parameter. The default value is SORT_REGULAR, which means that the array is sorted in a regular order. When the parameter value is SORT_NUMERIC , it means that the elements in the array are treated as numbers. When the parameter value is SORT_STRING, it means that the elements in the array are treated as strings. When the value of the parameter is SORT_LOCALE_STRING, it represents a string that is changed through the setlocale function. When the parameter value is SORT_NATURAL, it represents a natural sort similar to natsort().

Use the array_multisort function to sort strings. Elements whose key names are strings will be retained, but those whose key names are numbers will be re-indexed. The indexing rules are still the same.

If the sorting is successful, the returned result is true; if the sorting fails, the returned result is false.

Let’s take a look at the basic usage of the array_multisort function through an example. The example is as follows:

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

Output result:

How to solve the problem of sorting and shuffling arrays in PHP?

In the above example, the returned results are sorted in ascending order. Let's take a look at how the output results will change when the two values ​​​​are the same. The example is as follows:

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

Output result:

How to solve the problem of sorting and shuffling arrays in PHP?

#In the above example, when the two elements in the array are the same, they will not be overwritten. But the key names are different and reordered.

Let’s look at a comprehensive example below. When we merge two arrays and arrange them in descending order, what will happen to the output result? The example is as follows:

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

Output result:

How to solve the problem of sorting and shuffling arrays in PHP?

In the above, we can sort the array elements through the array_multisort function. Let’s introduce the shuffle function. It can shuffle the array.

<strong><span style="font-size: 20px;">shuffle</span></strong> Function - Reorder Array

in PHP Since there are functions that can sort the array elements in order, there are also ways to reorder the array, that is, to disrupt the array. shuffleThe basic syntax structure of the function is as follows:

shuffle(array)

The parameter array is the array that needs to be reordered. The shuffle() function puts the elements in the array in random order. rearrange. The original key names in the array will be deleted, and the new array will have new key names.

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

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

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

输出结果:

How to solve the problem of sorting and shuffling arrays in PHP?

How to solve the problem of sorting and shuffling arrays in PHP?

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

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

The above is the detailed content of How to solve the problem of sorting and shuffling arrays in PHP?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn