Home Backend Development PHP Tutorial Summary of various methods of php array sorting_PHP tutorial

Summary of various methods of php array sorting_PHP tutorial

Jul 13, 2016 pm 04:57 PM
asort php rsort sort function exist Summarize sort array method have

There are many array sorting functions in php (rsort, sort, asort, rsort, krsort, ksort, array_multisort). Let me summarize for you some of the array sorting functions we commonly use and the array sorting written by users themselves. Examples, friends who need to use them can refer to them.

The most commonly used function for array sorting is sort($arr); its function is to sort the array keys in ascending order, and the sorted array key names are no longer the original key names, but are reset according to the new array key name.
And sometimes we require more complex sorting. For example, if you sort by key name, the ksort($arr); function is used here, which will sort the array according to the key name and maintain the original key-value relationship. The corresponding asort($arr); function sorts by key value and maintains the original key-value relationship.

Same principle, rsort(); arsort(); krsort(); function is the same as sort(); rsort(); ksort(); except that the sorting is in descending order.
Array operations are a very important foundation of PHP, and I hope you can use them well.


Sort by key value
That is, the order is arranged according to the size of the identifier ASCⅡ code value.

ksort(): Sort by array identifier order
krsort(): Sort array identifier in reverse order
Example 1:

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

$languages=array(
'c'=>'php',
  'd'=>'asp',
  'a'=>'jsp',
  'b'=>'java'
 );
 krsort($languages);
 foreach($languages as $key=>$val){
  echo "$key = $val".'
';
 };
?>

$languages=array(

'c'=>'php',

'd'=>'asp',
'a'=>'jsp',
'b'=>'java'
);

krsort($languages);
 代码如下 复制代码

asort($languages);
print_r($languages);
echo "
";
rsort($languages);
print_r($languages);

foreach($languages ​​as $key=>$val){

echo "$key = $val".'
';
};

?>


Sort by element value

asort(): Sort the array from small to large;

rsort(): Sort the array in reverse order from large to small.
 代码如下 复制代码

sort($languages);
foreach($languages as $key=>$val){
 echo "languages[$key] = $val".'
';
};

Change lines 8-11 of Example 1 to:

The code is as follows Copy code

asort($languages); print_r($languages);

echo "
";

rsort($languages);
 代码如下 复制代码

$ar1 = array("10", 100, 100, "a");
$ar2 = array(1, 3, "2", 1);
array_multisort($ar1, $ar2);

var_dump($ar1);
var_dump($ar2);
?>

print_r($languages);
Delete the original key name sorting sort(): Sort the array from small to large; rsort(): Sort the array in reverse order from large to small. Change lines 8-11 of Example 2 to:
The code is as follows Copy code
sort($languages); foreach($languages ​​as $key=>$val){ echo "languages[$key] = $val".'
'; };
array_multisort -- Sort multiple arrays or multidimensional arrays Description bool array_multisort (array ar1 [, mixed arg [, mixed ... [, array ...]]] ) Example 1. Sort multiple arrays
The code is as follows Copy code
$ar1 = array("10", 100, 100, "a");<🎜> $ar2 = array(1, 3, "2", 1);<🎜> array_multisort($ar1, $ar2);<🎜> <🎜>var_dump($ar1);<🎜> var_dump($ar2);<🎜> ?>

After sorting in this example, the first array will contain "10", "a", 100, 100. The second array will contain 1,1,"2",3. The order of the items in the second array is exactly the same as the order of the corresponding items (100 and 100) in the first array.

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

array(4) {
[0]=> string(2) "10"
[1]=> string(1) "a"
[2]=> int(100)
[3]=> int(100)
}
array(4) {
[0]=> int(1)
[1]=> int(1)
[2]=> string(1) "2"
[3]=> int(3)
}

array(4) {

[0]=> string(2) "10"

[1]=> string(1) "a"

[2]=> int(100)

[3]=> int(100)
 代码如下 复制代码

$ar = array (array ("10", 100, 100, "a"), array (1, 3, "2", 1));
array_multisort ($ar[0], SORT_ASC, SORT_STRING,
$ar[1], SORT_NUMERIC, SORT_DESC);
?>

 

}

array(4) {

[0]=> int(1)

[1]=> int(1)
[2]=> string(1) "2"
[3]=> int(3)
}


Example 2. Sort multidimensional array

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



$aa = array (array ("score"=>60),
    array ("score"=>70),
    array ("score"=>80),
    array ("score"=>90),
    array ("score"=>20),
    array ("score"=>10),
    array ("score"=>50),
    array ("score"=>30));
 
echo '------排序前输出------
';   
var_dump($aa); // 排序前输出
 
usort($aa, "cmp"); // 排序处理(从大到小)
 
echo '
------排序后输出------
';
var_dump($aa); // 排序完输出
 
/**
 * 自定义排序条件
 * @param array $a
 * @param array $b
 * @return bool
 */
function cmp($a, $b) {
 if ($a["score"] == $b["score"]) {
  return 0;
 }
 return ($a["score"] < $b["score"]) ? 1 : -1;
}

?>
$ar = array (array ("10", 100, 100, "a"), array (1, 3, "2", 1)); array_multisort ($ar[0], SORT_ASC, SORT_STRING,                        $ar[1], SORT_NUMERIC, SORT_DESC); ?> After sorting in this example, the first array will contain 10, 100, 100, "a" (as ascending order of strings), and the second array will contain 1, 3, "2", 1 (as numerically descending order). There are many array sorting functions in PHP and they are very powerful Such as: arsort,asort,krsort,ksort,sort… But sometimes it still can’t meet our needs If there is a two-dimensional array, we need to sort it by a value in the two-dimensional array You need to use usort custom array sorting Examples are as follows:
The code is as follows Copy code
<🎜> $aa = array (array ("score"=>60), array ("score"=>70), Array ("score"=>80), Array ("score"=>90), array ("score"=>20), array ("score"=>10), array ("score"=>50), array ("score"=>30)); echo '------Output before sorting------
'; var_dump($aa); // Output before sorting usort($aa, "cmp"); // Sorting processing (from large to small) echo '
------Output after sorting------
'; var_dump($aa); // Output after sorting /** * Custom sorting conditions * @param array $a * @param array $b * @return bool ​*/ function cmp($a, $b) { if ($a["score"] == $b["score"]) { return 0; } return ($a["score"] < $b["score"]) ? 1 : -1;<🎜> }<🎜> <🎜> ?>

输出结果:

 代码如下
 代码如下 复制代码

------排序前输出------
array(8) { [0]=> array(1) { ["score"]=> int(60) }
 [1]=> array(1) { ["score"]=> int(70) }
 [2]=> array(1) { ["score"]=> int(80) }
 [3]=> array(1) { ["score"]=> int(90) }
 [4]=> array(1) { ["score"]=> int(20) }
 [5]=> array(1) { ["score"]=> int(10) }
 [6]=> array(1) { ["score"]=> int(50) }
 [7]=> array(1) { ["score"]=> int(30) } }
------排序后输出------
array(8) { [0]=> array(1) { ["score"]=> int(90) }
 [1]=> array(1) { ["score"]=> int(80) }
 [2]=> array(1) { ["score"]=> int(70) }
 [3]=> array(1) { ["score"]=> int(60) }
 [4]=> array(1) { ["score"]=> int(50) }
 [5]=> array(1) { ["score"]=> int(30) }
 [6]=> array(1) { ["score"]=> int(20) }
 [7]=> array(1) { ["score"]=> int(10) } }

复制代码
------排序前输出------
array(8) { [0]=> array(1) { ["score"]=> int(60) }
 [1]=> array(1) { ["score"]=> int(70) }
 [2]=> array(1) { ["score"]=> int(80) }
 [3]=> array(1) { ["score"]=> int(90) }
 [4]=> array(1) { ["score"]=> int(20) }
 [5]=> array(1) { ["score"]=> int(10) }
 [6]=> array(1) { ["score"]=> int(50) }
 [7]=> array(1) { ["score"]=> int(30) } }
------排序后输出------
array(8) { [0]=> array(1) { ["score"]=> int(90) }
 [1]=> array(1) { ["score"]=> int(80) }
 [2]=> array(1) { ["score"]=> int(70) }
 [3]=> array(1) { ["score"]=> int(60) }
 [4]=> array(1) { ["score"]=> int(50) }
 [5]=> array(1) { ["score"]=> int(30) }
 [6]=> array(1) { ["score"]=> int(20) }
 [7]=> array(1) { ["score"]=> int(10) } }

http://www.bkjia.com/PHPjc/631541.htmlwww.bkjia.comtrue
http://www.bkjia.com/PHPjc/631541.html
TechArticle
在php中数组排序函数有很多很多(rsort,sort,asort,rsort,krsort,ksort,array_multisort),下面我来给各位朋友总结我们常用到的一些数组排序函数与用户...
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