使用 PHP 的排序函数对数组进行排序
1。排序简介
sort() 是一个 PHP 函数,它按升序对数组进行排序,相反,rsort() 函数按降序对数组进行排序。 sort() 函数使用内部算法进行数组处理,而不是外部库。
$arr = array(5,3,7,1,9);
sort($arr);
print_r($arr);
/*输出:
Array
(
[0] => 1
[1] => 3
[2] => 5
[3] => 7
[4] => 9
)
*/
2。排序函数的参数为
sort()函数有两个必需参数,第一个参数是要排序的数组,第二个参数是可选的排序方法。
- 1表示升序,即从小到大排序;
- 0,或者系统不传递表示降序的参数,即表示从大到小排序的参数。
$arr = array(5,3,7,1,9);
sort($arr, 1);
print_r($arr);
/*输出:
Array
(
[0] => 1
[1] => 3
[2] => 5
[3] => 7
[4] => 9
)
*/
$arr = array(5,3,7,1,9);
sort($arr, 0);
print_r($arr);
/*输出:
Array
(
[0] => 9
[1] => 7
[2] => 5
[3] => 3
[4] => 1
)
*/
3。 sort函数对字符串/中文字符串/多维数组进行排序
1。弦
sort() 函数还可以用于字符串来执行简单的字母排序以及按字母顺序对单词进行排序。例如:
$str = "hello world";
$arr = str_split($str);
sort($arr);
$str = implode("", $arr);
echo $str;
/*输出:
dehllloorw
*/
2。中文弦
当你需要对中文字符串进行排序时,你需要ICU的支持。这可以通过 intl 扩展来实现。具体代码为:
if (extension_loaded("intl")) {
$arr = array("北京", "上海", "深圳", "广州");
$arrLenth = [];
foreach ($arr as $value) {
$arrLenth[] = grapheme_strlen($value);
}
array_multisort($arrLenth, SORT_ASC, $arr);
print_r($arr);
} else {
echo "intl扩展未安装";
}
/*输出:
Array
(
[0] => 北京
[1] => 广州
[2] => 上海
[3] => 深圳
)
*/
3。多维数组
您可以使用uasort()和usort()对多维数组进行排序。两者之间的区别在于参数传递给回调函数的方式。 usort() 只传递两个参数,即要比较的两个元素,而 uasort() 有 3 个参数,第一个是要排序的数组,第二个是要比较的两个元素,第三个是比较模式。以下代码是按数组元素排序的示例:
$arr = array(
array("name" => "张三", "age" => 20),
array("name" => "李四", "age" => 18),
array("name" => "王五", "age" => 22),
);
usort($arr, function ($a, $b) {
if ($a["age"] == $b["age"]) {
return 0;
}
return ($a["age"] Array
(
[name] => 李四
[age] => 18
)
[1] => Array
(
[name] => 张三
[age] => 20
)
[2] => Array
(
[name] => 王五
[age] => 22
)
)
*/
4。结论
sort()函数是PHP中常用的函数,用于实现简单快速的数组排序。但使用时要注意,在字符串/中文字符串/多维数组排序的情况下,需要进行特殊处理才能达到满足自己需求的排序。 。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
上一篇:使用curl_exec执行一个简单的HTTP请求 下一篇:PHP中使用系统函数
code前端网