Home Backend Development PHP Tutorial Summary of some PHP array sorting function examples_PHP tutorial

Summary of some PHP array sorting function examples_PHP tutorial

Jul 13, 2016 pm 05:00 PM
php function Can exist accomplish Summarize sort array have of Example Simple

There are many functions that can be used to sort arrays in php. If it is a simple one-dimensional array sort, we can use the sorting function that comes with php, but for multi-dimensional arrays, we need to write it ourselves.


I have been worried since I came back, so I looked up the book and found the answer. In order to remember them, I decided to make a summary of array sorting functions.


The first thing I came into contact with was the problem of PHP array sorting and descending order.

sort: This function assigns new key names to the cells in the array. This will delete the original keys rather than just reorder them.
rsort: This function sorts the array in reverse order (highest to lowest). Delete the original key names instead of just reordering them.
asort: Sort the array and maintain the index relationship
arsort: Sort the array in reverse and maintain the index relationship

ksort: Sort the array by key name and retain the association between key name and data
krsort: Sort the array in reverse order by key name, retaining the association between key name and data

natsort: Sort alphanumeric strings while maintaining original key/value associations
natcasesort: Same as natsort sorting algorithm, but case-insensitive sorting


PHP array sort (sort)
Numeric index array sorting:
Function: sort(array, [sort type])
Description: The sort() function sorts the specified array (first parameter) in ascending order.
The second parameter of the sort function is used to specify the sorting type and is an optional parameter. The possible values ​​are:
SORT_REGULAR: Default value, sort without changing the type;
SORT_NUMERIC: Sort values ​​as numbers;
SORT_STRING: Sort values ​​as strings;
For example, if there are 4 and "37" in the array, if you sort by numbers, 4 is less than "37"; if you sort by strings, 4 is greater than "37";


1. One-dimensional array

Suppose there is a one-dimensional array, as follows:


$sortArr = array("name"=>"hiro", "age"=>"23", "city"=>"Shanghai", "code"=>"200051");
The original array result output by print_r() is:


Array ( [name] => hiro [age] => 23 [city] => Shanghai [code] => 200051 )

1.sort() function: sort in ascending order according to the array subscript;
The array result output by print_r() is (only the array subscript is output, not the key name):

1
Array ( [0] => 23 [1] => 200051 [2] => Shanghai [3] => hiro )

2.rsort() function: Contrary to the sort() function, sort in descending order according to the array subscript;
The array result output by print_r() is (only the array subscript is output, not the key name):


Array ( [0] => hiro [1] => Shanghai [2] => 200051 [3] => 23 )

3.asort() function: Sort in ascending order according to the key name of the array;
The array result output by print_r() is:

1
Array ( [age] => 23 [code] => 200051 [city] => Shanghai [name] => hiro )

4.arsort() function: Contrary to the asort() function, it sorts in descending order according to the key name of the array;
The array result output by print_r() is:


Array ( [name] => hiro [city] => Shanghai [code] => 200051 [age] => 23 )

5.ksort() function: Sort in ascending order according to the key value of the array;
The array result output by print_r() is:


Array ( [age] => 23 [city] => Shanghai [code] => 200051 [name] => hiro )

6.krsort() function: Contrary to the ksort() function, it sorts in descending order according to the key values ​​of the array;
The array result output by print_r() is:

The code is as follows Copy code
 代码如下 复制代码


 Array ( [name] => hiro [city] => Shanghai [code] => 200051 [age] => 23 )

Array ( [name] => hiro [city] => Shanghai [code] => 200051 [age] => 23 )

7.reverse_array() function: reverse the current array order;

The array result output by print_r() is:

 代码如下 复制代码
 Array ( [name] => hiro [age] => 23 [city] => Shanghai [code] => 200051 )

8.shuffle() function: Arrange the array order randomly (the order is different after each refresh);
The array result output by print_r() is (just one of the random arrangements):


Array ( [0] => 23 [1] => 200051 [2] => Shanghai [3] => hiro )

2. Two-dimensional array
Suppose there is a two-dimensional array as follows:

The code is as follows Copy code
 代码如下 复制代码

 $person = array(
 array("hiro", "23", "suzhou"),
 array("yoyo", "25", "shanghai"),
 array("janstar", "28", "xinjiang")
);
print_r()输出的原始数组结果为:

1
 Array ( [0] => Array ( [0] => hiro [1] => 23 [2] => suzhou ) [1] => Array ( [0] => yoyo [1] => 25 [2] => shanghai ) [2] => Array ( [0] => janstar [1] => 28 [2] => xinjiang ) )

$person = array(

array("hiro", "23", "suzhou"),

array("yoyo", "25", "shanghai"),

array("janstar", "28", "xinjiang")

);
 代码如下 复制代码

function compare0($x, $y) {
 if($x[0] == $t[0]) {
  return 0;
 } elseif ($x[0] < $y[0]) {
return -1;
} else {
return 1;
}
}

usort($person, compare0);
echo "按第一个元素正向排序:";
print_r($person);
输出的结果如下:

1
按第一个元素正向排序:Array ( [0] => Array ( [0] => hiro [1] => 23 [2] => suzhou ) [1] => Array ( [0] => janstar [1] => 28 [2] => xinjiang ) [2] => Array ( [0] => yoyo [1] => 25 [2] => shanghai ) )

The original array result output by print_r() is:

1
 代码如下 复制代码

function compare2($x, $y) {
 if($x[2] == $t[2]) {
  return 0;
 } elseif ($x[2] < $y[2]) {
return -1;
} else {
return 1;
}
}

usort($person, compare2);
echo "按第三个元素正向排序:";
print_r($person);
输出的结果如下:


按第三个元素正向排序:Array ( [0] => Array ( [0] => yoyo [1] => 25 [2] => shanghai ) [1] => Array ( [0] => hiro [1] => 23 [2] => suzhou ) [2] => Array ( [0] => janstar [1] => 28 [2] => xinjiang ) )

Array ( [0] => Array ( [0] => hiro [1] => 23 [2] => suzhou ) [1] => Array ( [0] => yoyo [1] => 25 [2] => shanghai ) [2] => Array ( [0] => janstar [1] => 28 [2] => xinjiang ) )

The sorting of two-dimensional arrays is based on the key name of each dimension, so an additional comparison function needs to be written. Let’s give three examples:
 代码如下 复制代码
function reverse_compare2($x, $y) {
 if($x[2] == $t[2]) {
  return 0;
 } elseif ($x[2] < $y[2]) {
return 1; //改变后即可反向
} else {
return -1; //改变后即可反向
}
}

usort($person, reverse_compare2);
<🎜>1. Sort by the first element of each dimension in ascending order, the code is as follows: <🎜>
The code is as follows Copy code
<🎜>function compare0($x, $y) {<🎜> if($x[0] == $t[0]) {<🎜> Return 0;<🎜> } elseif ($x[0] < $y[0]) {<🎜> Return -1;<🎜> } else {<🎜> Return 1;<🎜> }<🎜> }<🎜> <🎜> usort($person, compare0);<🎜> echo "Sort forward by the first element:";<🎜> print_r($person); <🎜> The output results are as follows: <🎜> <🎜>1<🎜> Sort forward by the first element: Array ( [0] => Array ( [0] => hiro [1] => 23 [2] => suzhou ) [1] => Array ( [ 0] => janstar [1] => 28 [2] => xinjiang ) [2] => Array ( [0] => yoyo [1] => 25 [2] => shanghai ) )
2. Sort by the third element of each dimension in ascending order, the code is as follows:
The code is as follows Copy code
function compare2($x, $y) { if($x[2] == $t[2]) { Return 0; } elseif ($x[2] < $y[2]) {<🎜> Return -1;<🎜> } else {<🎜> Return 1;<🎜> }<🎜> }<🎜> <🎜> usort($person, compare2);<🎜> echo "Sort forward by the third element:";<🎜> print_r($person); <🎜> The output results are as follows: <🎜> <🎜><🎜> Sort forward by the third element: Array ( [0] => Array ( [0] => yoyo [1] => 25 [2] => shanghai ) [1] => Array ( [ 0] => hiro [1] => 23 [2] => suzhou ) [2] => Array ( [0] => janstar [1] => 28 [2] => xinjiang ) )
3. Sort by the third element of each dimension in ascending order, the code is as follows:
The code is as follows Copy code
function reverse_compare2($x, $y) { if($x[2] == $t[2]) { return 0; } elseif ($x[2] < $y[2]) {<🎜> Return 1; //You can reverse it after changing it<🎜> } else {<🎜> Return -1; //Reverse after changing<🎜> }<🎜> }<🎜> <🎜> usort($person, reverse_compare2);<🎜>

echo "Sort by the third element in reverse order:";
print_r($person);
The output results are as follows:

1
Sort in reverse order by the third element:

代码如下 复制代码
Array ( [0] => Array ( [0] => janstar [1] => 28 [2] => xinjiang ) [1] => Array ( [0] => hiro [1] => 23 [2] => suzhou ) [2] => Array ( [0] => yoyo [1] => 25 [2] => shanghai ) )

Haha, there are too many codes, please write them down for easy reference later!

Example

The code is as follows
 代码如下 复制代码

error_reporting(0);

/**
* @数字数组排序 可按从大到小或从小到大排序
*/
function sortArray($array, $choice) {
$values = array_values($array); // 建立一个数字索引的数组
$ch = $choice==0 ? min:max; // 参数$choice为0按从小到大排列,否则其他都默认为按从大到小
do {
$val = $ch($values); // 找出最大或最小值
$key = array_search($val,$values); // 取得最大值的键名
$result[$key] = $val; // 将最大值存入新数组
unset($values[$key]);
} while (count($values) > 0);
    return $result;
}

$array = array(100, 1000, 1, 10000);
//$array = sortArray($array, 0);
$array = sortArray($array, 1);
foreach($array as $a) {
    echo "$a ";
}
?>

Copy code
error_reporting(0);

/***/ function sortArray($array, $choice) { $values ​​= array_values($array); // Create a numerically indexed array $ch = $choice==0 ? min:max; // If the parameter $choice is 0, the order is from small to large, otherwise the others will be arranged from large to small by default do {            $val = $ch($values); // Find the maximum or minimum value           $key = array_search($val,$values); // Get the key name with the maximum value           $result[$key] = $val; // Store the maximum value in the new array           unset($values[$key]); } while (count($values) > 0); Return $result; } $array = array(100, 1000, 1, 10000);
//$array = sortArray($array, 0);
$array = sortArray($array, 1); foreach($array as $a) { echo "$a "; } ?> http://www.bkjia.com/PHPjc/631245.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/631245.htmlTechArticleThere are many functions that can be implemented for array sorting in php. If it is a simple one-dimensional array sorting, we can use php It comes with a sorting function, but for multi-dimensional arrays we need to write it ourselves. ...
Statement of this Website
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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

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

7 PHP Functions I Regret I Didn't Know Before 7 PHP Functions I Regret I Didn't Know Before Nov 13, 2024 am 09:42 AM

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

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

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

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

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,

PHP Program to Count Vowels in a String PHP Program to Count Vowels in a String Feb 07, 2025 pm 12:12 PM

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

How do you parse and process HTML/XML in PHP? How do you parse and process HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

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

Explain late static binding in PHP (static::). Explain late static binding in PHP (static::). Apr 03, 2025 am 12:04 AM

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 PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? Apr 03, 2025 am 12:03 AM

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.

See all articles