溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php數組排序有哪幾種

發布時間:2022-06-01 15:02:54 來源:億速云 閱讀:580 作者:iii 欄目:編程語言

PHP數組排序有哪幾種

在PHP中,數組是一種非常常用的數據結構,而對數組進行排序是開發過程中常見的操作。PHP提供了多種排序函數,可以根據不同的需求對數組進行排序。本文將介紹PHP中常見的數組排序方法及其使用場景。

1. sort() 函數

sort() 函數用于對數組進行升序排序。它會直接修改原數組,并返回一個布爾值表示排序是否成功。

$numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
sort($numbers);
print_r($numbers);

輸出結果:

Array
(
    [0] => 1
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 3
    [5] => 4
    [6] => 5
    [7] => 5
    [8] => 5
    [9] => 6
    [10] => 9
)

2. rsort() 函數

rsort() 函數與 sort() 函數類似,但它是對數組進行降序排序。

$numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
rsort($numbers);
print_r($numbers);

輸出結果:

Array
(
    [0] => 9
    [1] => 6
    [2] => 5
    [3] => 5
    [4] => 5
    [5] => 4
    [6] => 3
    [7] => 3
    [8] => 2
    [9] => 1
    [10] => 1
)

3. asort() 函數

asort() 函數用于對關聯數組按值進行升序排序,同時保持鍵值對的關聯。

$fruits = ["d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"];
asort($fruits);
print_r($fruits);

輸出結果:

Array
(
    [c] => apple
    [b] => banana
    [d] => lemon
    [a] => orange
)

4. arsort() 函數

arsort() 函數與 asort() 函數類似,但它是對關聯數組按值進行降序排序。

$fruits = ["d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"];
arsort($fruits);
print_r($fruits);

輸出結果:

Array
(
    [a] => orange
    [d] => lemon
    [b] => banana
    [c] => apple
)

5. ksort() 函數

ksort() 函數用于對關聯數組按鍵進行升序排序。

$fruits = ["d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"];
ksort($fruits);
print_r($fruits);

輸出結果:

Array
(
    [a] => orange
    [b] => banana
    [c] => apple
    [d] => lemon
)

6. krsort() 函數

krsort() 函數與 ksort() 函數類似,但它是對關聯數組按鍵進行降序排序。

$fruits = ["d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"];
krsort($fruits);
print_r($fruits);

輸出結果:

Array
(
    [d] => lemon
    [c] => apple
    [b] => banana
    [a] => orange
)

7. usort() 函數

usort() 函數允許你使用自定義的比較函數對數組進行排序。這個函數會直接修改原數組。

function compare($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

$numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
usort($numbers, "compare");
print_r($numbers);

輸出結果:

Array
(
    [0] => 1
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 3
    [5] => 4
    [6] => 5
    [7] => 5
    [8] => 5
    [9] => 6
    [10] => 9
)

8. uasort() 函數

uasort() 函數與 usort() 函數類似,但它用于對關聯數組按值進行排序,同時保持鍵值對的關聯。

function compare($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

$fruits = ["d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"];
uasort($fruits, "compare");
print_r($fruits);

輸出結果:

Array
(
    [c] => apple
    [b] => banana
    [d] => lemon
    [a] => orange
)

9. uksort() 函數

uksort() 函數允許你使用自定義的比較函數對關聯數組的鍵進行排序。

function compare($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

$fruits = ["d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"];
uksort($fruits, "compare");
print_r($fruits);

輸出結果:

Array
(
    [a] => orange
    [b] => banana
    [c] => apple
    [d] => lemon
)

10. natsort() 函數

natsort() 函數使用“自然排序”算法對數組進行排序。自然排序算法會按照人類習慣的方式對字符串進行排序。

$images = ["img12.png", "img10.png", "img2.png", "img1.png"];
natsort($images);
print_r($images);

輸出結果:

Array
(
    [3] => img1.png
    [2] => img2.png
    [1] => img10.png
    [0] => img12.png
)

11. natcasesort() 函數

natcasesort() 函數與 natsort() 函數類似,但它不區分大小寫。

$images = ["img12.png", "Img10.png", "img2.png", "Img1.png"];
natcasesort($images);
print_r($images);

輸出結果:

Array
(
    [3] => Img1.png
    [2] => img2.png
    [1] => Img10.png
    [0] => img12.png
)

12. array_multisort() 函數

array_multisort() 函數可以對多個數組或多維數組進行排序。它可以同時對多個數組進行排序,或者對多維數組的某一列進行排序。

$data = [
    ['volume' => 67, 'edition' => 2],
    ['volume' => 86, 'edition' => 1],
    ['volume' => 85, 'edition' => 6],
    ['volume' => 98, 'edition' => 2],
    ['volume' => 86, 'edition' => 6],
    ['volume' => 67, 'edition' => 7],
];

$volume = array_column($data, 'volume');
$edition = array_column($data, 'edition');

array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
print_r($data);

輸出結果:

Array
(
    [0] => Array
        (
            [volume] => 98
            [edition] => 2
        )

    [1] => Array
        (
            [volume] => 86
            [edition] => 1
        )

    [2] => Array
        (
            [volume] => 86
            [edition] => 6
        )

    [3] => Array
        (
            [volume] => 85
            [edition] => 6
        )

    [4] => Array
        (
            [volume] => 67
            [edition] => 2
        )

    [5] => Array
        (
            [volume] => 67
            [edition] => 7
        )

)

總結

PHP提供了豐富的數組排序函數,可以根據不同的需求選擇合適的排序方法。無論是簡單的數值排序,還是復雜的多維數組排序,PHP都能輕松應對。掌握這些排序函數,可以大大提高開發效率。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女