首頁  >  文章  >  後端開發  >  php數組能排序麼

php數組能排序麼

青灯夜游
青灯夜游原創
2022-05-07 16:59:242049瀏覽

php陣列能排序。 php有多種陣列排序函數:1、sort(),可進行升序排序,語法「sort(數組)」;2、rsort(),可進行降序排序,語法「rsort(數組)」;3、shuffle( ),可進行隨機排序,語法「shuffle(數組)」。

php數組能排序麼

本教學操作環境:windows7系統、PHP7.1版、DELL G3電腦

php陣列能排序。

php提供了多種內建函數,以供不同的陣列排序需求(鍵值、鍵名、升序、降序等)。

1、對陣列進行升序排序

#PHP中有三個常用的陣列升序排序函數:

  • sort():對陣列元素進行升序排序

  • asort():根據關聯陣列的鍵值,將陣列進行升序排列


php數組能排序麼


##ksort(): 依據關聯陣列的鍵名,將陣列升序排序    

    1、使用sort()函數
  • sort()函數對陣列元素進行升序排序(從小到大,由低到高)。
  • <?php
    header("Content-type:text/html;charset=utf-8");
    $arr1 = array(10, 23, 5, 12, 84, 16);
    sort($arr1);
    var_dump($arr1);
    
    $arr2= array("香蕉","苹果","梨子","橙子","橘子","榴莲");
    sort($arr2);
    var_dump($arr2);
    ?>
  • #輸出:

  • #sort() 函數有兩個參數:$array(必須)和$sortingtype(可省略)。
  • 其中,$sortingtype參數用來定義函數排序的模式,指定如何比較陣列的元素/項目,預設值為「SORT_REGULAR」。
  • $sortingtype參數可以設定為下列這些值:

  • 0 = SORT_REGULAR:正常比較陣列元素,不改變其類型(預設值);

1 = SORT_NUMERIC:將陣列元素當作數字來處理;


2 = SORT_STRING:將陣列元素當作字串來處理;

php數組能排序麼

3 = SORT_LOCALE_STRING:基於目前的區域設定(可透過setlocale()進行變更),把陣列元素當作字串比較。


4 = SORT_NATURAL:和 natsort() 類似對每個陣列元素以「自然的順序」對字串進行排序,是 PHP5.4.0 中新增的。

php數組能排序麼

5 = SORT_FLAG_CASE:能夠與 SORT_STRING 或 SORT_NATURAL 合併(OR 位元運算),不區分大小寫排序字串。

<?php
header("Content-type:text/html;charset=utf-8");
$arr1 = array(10, 23, 5, 12, 84, 16);
sort($arr1,2);
var_dump($arr1);

$arr2= array("香蕉","苹果","梨子","橙子","橘子","榴莲");
sort($arr2,1);
var_dump($arr2);
?>

輸出結果:


#sort()函數不會保持索引關係,會刪除陣列中原有的鍵名並為其賦與新的數值鍵名。 php數組能排序麼

<?php
header("Content-type:text/html;charset=utf-8");
$age = array("张三"=>30,"李四"=>23,"王五"=>15,"李华"=>12,"娜娜"=>26,"小红"=>16);
sort($age);
var_dump($age);
?>

輸出:

sort()函數可以用於值和索引間關係不是那麼重要的陣列(數值陣列),但注重值和索引間關係的陣列就不適合了。此時,就需要使用asort()和ksort()函數了。

2、使用asort()函數


asort()函數會根據關聯陣列的鍵值進行升序排序,且不會修改原數組中的鍵名。

header("Content-type:text/html;charset=utf-8");
$age = array("张三"=>30,"李四"=>23,"王五"=>15,"李华"=>12,"娜娜"=>26,"小红"=>16);
asort($age);
var_dump($age);
?>

#輸出:php數組能排序麼


php數組能排序麼asort()函數也有兩個參數,參數取值和sort()函數相同,可以參考。

3、使用kso​​rt()函數

ksort()函數會根據關聯陣列的鍵名進行升序排序,也不會修改原數組中的鍵名。

<?php
header("Content-type:text/html;charset=utf-8");
$age = array("张三"=>30,"李四"=>23,"王五"=>15,"李华"=>12,"娜娜"=>26,"小红"=>16);
ksort($age);
var_dump($age);
?>
輸出:

    <?php
    header("Content-type:text/html;charset=utf-8");
    $arr= array("l"=>"lemon", "o"=>"orange", "b"=>"banana", "a"=>"apple");
    ksort($arr);
    var_dump($arr);
    ?>
  • #輸出:

# #ksort()函數也有兩個參數,參數取值和sort()函數相同,可以參考。

2、對陣列進行降序排序php數組能排序麼

#######PHP中有三個常用的陣列降序排序函數:##### #######rsort():將陣列元素降序排序############arsort():根據關聯陣列的鍵值,將陣列進行降序排列##################################################### #######krsort():依據關聯陣列的鍵名,對陣列進行降序排序    ###############1、使用rsort()函數##### ####rsort() 函數用來對陣列元素進行降序排序,也就是從大到小、從高到低排序。 ######我們來看看程式碼實例:###
<?php
header("Content-type:text/html;charset=utf-8");
$arr = array(2, 1, 5, 16, 29, 15);
rsort($arr);
var_dump($arr);
?>
###輸出結果:#############

rsort() 函数有两个参数:$array(必须)和$sortingtype(可省略)。$sortingtype参数用于表示排序模式,具体取值可以参考上篇文章的sort()函数。下文arsort()和krsort()同样参考sort()函数。

<?php
header("Content-type:text/html;charset=utf-8");
$arr = array(2, 1, 5, 16, 29, 15);
rsort($arr,2);
var_dump($arr);
?>

输出结果:

php數組能排序麼

rsort()和sort()函数一样,都不会保持索引关系,会删除数组中原有的键名,并为其重新赋值;因此不适合用于注重值和索引间关系的数组。

2、使用arsort()函数

arsort()函数会根据关联数组的键值进行降序排序,且不会修改原数组中的键名。

<?php
header("Content-type:text/html;charset=utf-8");
$age = array("张三"=>30,"李四"=>23,"王五"=>15,"李华"=>12,"娜娜"=>26,"小红"=>16);
arsort($age);
var_dump($age);

arsort($age,2);
var_dump($age);
?>

输出结果:

php數組能排序麼

3、使用krsort()函数

krsort()函数会根据关联数组的键名进行降序排序,也不会修改原数组中的键名。

<?php
header("Content-type:text/html;charset=utf-8");
$arr= array("l"=>"lemon", "o"=>"orange", "b"=>"banana", "a"=>"apple");
krsort($arr);
var_dump($arr);

krsort($arr,1);
var_dump($arr);
?>

输出结果:

php數組能排序麼

3、随机排序

在PHP中,可以使用shuffle()函数随机排序,打乱数组元素。

shuffle()函数会把数组中的元素按随机顺序重新排列。

<?php
header("Content-type:text/html;charset=utf-8");
$arr1 = array(10, 23, 5, 12, 84, 16);
shuffle($arr1);
var_dump($arr1);

$arr2= array("香蕉","苹果","梨子","橙子","橘子","榴莲");
shuffle($arr2);
var_dump($arr2);
?>

输出结果:

php數組能排序麼

刷新一下,结果就改变了:

php數組能排序麼

php數組能排序麼

说明:shuffle()函数不仅会将数组随机打乱,还会删除数组中原有的键名,并为其赋与新的数值键名(即不会保持索引关系)。

推荐学习:《PHP视频教程

以上是php數組能排序麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn