


Detailed explanation of PHP array sorting function array_multisort() function
This article introduces the detailed explanation of the PHP array sorting function array_multisort() function. It has a certain reference value. Now I share it with you. Friends in need can refer to the
array_multisort() function. Multiple PHP arrays can be sorted, and the result of the sorting is that all arrays are arranged in the order of the first array - a bit confusing, really, and you won't understand if I just say this. Let’s take an example first:
例如array_multisort($a,$b),$a,$b是两个数组,如果排序之后,$a数组的第3个元 素被排到了第一位,那么$b的第三个元素不管他在$b中的大小都会排在第一位。看看下边 的程序运行结果: $a =array(100,80,50,10,0); $b = array("c","f","q","e","z"); array_multisort($a,$b); var_dump($a); var_dump($b); 运行结果: array(5) { [0]=> int(0) [1]=> int(10) [2]=> int(50) [3]=> int(80) [4]=> int(100) } array(5) { [0]=> string(1) “z” [1]=> string(1) “e” [2]=> string(1) “q” [3]=> string(1) “f” [4]=> string(1) “c” } 其实说明白了就是,array_multisort()先把第一个数组按照键值的大小排序,然后其它 数组都按照第一个数组的调整策略进行调整——第三个元素放到第一位,第二个元素放到第 二位……——其实这个多维数组排序算法的最基本体现!
But it should be noted that the number of elements in the two arrays must be the same, otherwise a warning message will appear
First of all, let’s take a look at the method of sorting each element [array] of a multi-dimensional array. It is very simple, but there are several parameters that need to be explained. If you know something about SQL, you will probably understand it at a glance:
//让我们来构造一个多维数组 $a=array(100,2,4,7,7); $b=array('ab','ac','ad','ag','ap'); $ab = array($a,$b); //开始排序 array_multisort($ab[0],SORT_NUMERIC,SORT_DESC,$ab[1],SORT_STRING,SORT_ASC); print_r($ab); 说明一下:首先我们用SORT_NUMERIC来声明对$ab[0]用数字类型排序,用SORT_DESC声 明顺序是逆序(从大到小),然后我们对$ab[1]用字符串类型排序,顺序是升序(顺序) 最后数组$ab的排序结果是两者的结合,先按$ab[0]的逆序,如果$ab[0]中存在大小相同 的数值则按照$ab[1]的顺序排列,输出结果如下: Array ( [0] => Array ( [0] => 100 [1] => 7 [2] => 7 [3] => 4 [4] => 2 ) [1] => Array ( [0] => ab [1] => ag [2] => ap [3] => ad [4] => ac ) )
Now let’s look at an example that is closer to practical application:
$array[] = array("age"=>20,"name"=>"li"); $array[] = array("age"=>21,"name"=>"ai"); $array[] = array("age"=>20,"name"=>"ci"); $array[] = array("age"=>22,"name"=>"di"); foreach ($array as $key=>$value){ $age[$key] = $value['age']; $name[$key] = $value['name']; } array_multisort($age,SORT_NUMERIC,SORT_DESC,$name,SORT_STRING,SORT_ASC,$array); print_r($array);
The $array[] array in this example is constructed based on the records read from the database. We now use them Sort by age from oldest to youngest, if they are the same age, sort by name. This kind of sorting is what we will often use in the future
Because the sorting parameter required by array_multisort() must be a column, so we use foreach to read out the age and name of this array. What happens next?
就像上边的例子一样,进行排序,最后一个参数$array想必大家也看见了,是的这里需要 声明对哪个数组进行排序,因为我们前边两个参数在形式上已经和需要排序的PHP数组没有 关系了,虽然其实他们就是$array中的数据——我们从$array中抽取的列——排序当然是需 要列,还没见过用行数据进行排序的呢!
The output result is as follows - just as we thought:
Array ( [0] => Array ( [age] => 22 [name] => di ) [1] => Array ( [age] => 21 [name] => ai ) [2] => Array ( [age] => 20 [name] => ci ) [3] => Array ( [age] => 20 [name] => li ) )
See it, it is actually very simple, it’s just that the few parameters that need to be capitalized are a bit annoying! Although it is a bit difficult to understand, it will be great if you understand it. It will be very useful in the future!
array_multisort(array1,sorting order,sorting type,array2,array3…)
-
sorting order Optional. Specify the order of sorting. Possible values:
SORT_ASC - Default. Sort in ascending order (A-Z).
SORT_DESC - Sort in descending order (Z-A). -
sorting type Optional. Specifies the sorting type. Possible values:
SORT_REGULAR - Default. Put each item in regular order (Standard ASCII, don't change the type).
SORT_NUMERIC - Treat each item as a number.
SORT_STRING - Treat each item as a string.
SORT_LOCALE_STRING - Treat each item as a string, based on the current locale (can be changed via setlocale()).
SORT_NATURAL - Treat each item as a string, using natural sorting like natsort().
SORT_FLAG_CASE - Can be combined (bitwise ORed) with SORT_STRING or SORT_NATURAL to sort strings, case-insensitively.
Related recommendations:
php array sort usort uksort sort function
The above is the detailed content of Detailed explanation of PHP array sorting function array_multisort() function. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.
