Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Isih tatasusunan mengikut nilai kunci berbilang peringkat dalam PHP, mengekalkan nama kunci

Isih tatasusunan mengikut nilai kunci berbilang peringkat dalam PHP, mengekalkan nama kunci

王林
王林asal
2024-04-30 11:48:01760semak imbas

Dalam PHP, fungsi usort() digunakan untuk mengisih tatasusunan mengikut nilai kunci berbilang peringkat Dengan fungsi perbandingan yang ditentukan pengguna, tatasusunan boleh diisih mengikut pasangan nilai kunci sambil mengekalkan nama kunci tidak berubah. Aplikasi praktikal: Untuk mengisih ulasan blog mengikut bilangan suka, anda boleh menggunakan usort() dan fungsi perbandingan untuk mengisih mengikut tertib menurun mengikut suka.

PHP 中按多级键值对数组排序,保持键名

Isih tatasusunan mengikut nilai kunci berbilang peringkat dalam PHP

Dalam PHP, menyusun tatasusunan nilai kunci berbilang peringkat boleh menjadikan pemprosesan data lebih mudah. Tutorial ini menunjukkan cara mengisih tatasusunan mengikut pasangan nilai kunci berbilang peringkat sambil mengekalkan nama kunci tidak berubah.

Menggunakan fungsi usort()usort()

usort() 函数使用用户定义的比较函数对数组进行排序。我们可以通过该函数将数组按指定的键值对排序,同时保持键名。

<?php

function compare($a, $b) {
    return $a['key'] <=> $b['key'];
}

$data = [
    'data1' => ['key' => 10],
    'data2' => ['key' => 5],
    'data3' => ['key' => 15],
];

usort($data, 'compare');

print_r($data);
?>

输出:

Array
(
    [data2] => Array
        (
            [key] => 5
        )

    [data1] => Array
        (
            [key] => 10
        )

    [data3] => Array
        (
            [key] => 15
        )

)

在这个例子中,我们定义了一个比较函数 compare(),该函数将数组元素的 key 值进行比较。然后,我们使用 usort() 函数将数组按照 key 值进行排序。

实战案例

让我们考虑一个实际案例,使用 usort() 函数对博客文章的评论按点赞数量进行排序。

<?php

$comments = [
    1 => ['content' => '评论 1', 'likes' => 10],
    2 => ['content' => '评论 2', 'likes' => 5],
    3 => ['content' => '评论 3', 'likes' => 15],
];

function compareComments($a, $b) {
    return $b['likes'] <=> $a['likes'];
}

usort($comments, 'compareComments');

foreach ($comments as $id => $comment) {
    echo "评论 $id: {$comment['content']}, 点赞数: {$comment['likes']}<br>";
}
?>

输出:

评论 3: 评论 3, 点赞数: 15<br>
评论 1: 评论 1, 点赞数: 10<br>
评论 2: 评论 2, 点赞数: 5<br>

在这个例子中,我们使用 compareComments() 函数对评论数组按 likes

🎜usort() mengisih tatasusunan menggunakan fungsi perbandingan yang ditentukan pengguna. Kita boleh menggunakan fungsi ini untuk mengisih tatasusunan mengikut pasangan nilai kunci yang ditentukan sambil mengekalkan nama kunci. 🎜rrreee🎜Output: 🎜rrreee🎜Dalam contoh ini, kami mentakrifkan fungsi perbandingan compare() yang membandingkan nilai key elemen tatasusunan. Kami kemudian menggunakan fungsi usort() untuk mengisih tatasusunan mengikut nilai key. 🎜🎜🎜Kes Praktikal🎜🎜🎜Mari kita pertimbangkan kes praktikal, menggunakan fungsi usort() untuk mengisih ulasan catatan blog mengikut bilangan suka. 🎜rrreee🎜Output: 🎜rrreee🎜Dalam contoh ini, kami menggunakan fungsi compareComments() untuk mengisih tatasusunan ulasan mengikut nilai likes (tertib menurun). Kami kemudian mengulangi tatasusunan yang diisih dan memaparkan kandungan dan bilangan suka untuk setiap ulasan. 🎜

Atas ialah kandungan terperinci Isih tatasusunan mengikut nilai kunci berbilang peringkat dalam PHP, mengekalkan nama kunci. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn