Sortieren Sie Arrays in PHP nach mehrstufigen Schlüsselwerten und behalten Sie dabei die Schlüsselnamen bei

王林
Freigeben: 2024-04-30 11:48:01
Original
716 Leute haben es durchsucht

In PHP wird die Funktion usort() verwendet, um Arrays nach mehrstufigen Schlüsselwerten zu sortieren. Mit einer benutzerdefinierten Vergleichsfunktion kann das Array nach Schlüssel-Wert-Paaren sortiert werden, während die Schlüsselnamen unverändert bleiben. Praktische Anwendung: Um Blog-Kommentare nach der Anzahl der Likes zu sortieren, können Sie mit usort() und der Vergleichsfunktion absteigend nach Likes sortieren.

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

Array nach mehrstufigem Schlüsselwert in PHP sortieren

In PHP kann das Sortieren eines mehrstufigen Schlüsselwert-Arrays die Datenverarbeitung komfortabler machen. In diesem Tutorial wird gezeigt, wie Sie ein Array nach mehrstufigen Schlüssel-Wert-Paaren sortieren und dabei die Schlüsselnamen unverändert lassen.

Verwenden Sie die Funktion 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);
?>
Nach dem Login kopieren

输出:

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

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

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

)
Nach dem Login kopieren

在这个例子中,我们定义了一个比较函数 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>";
}
?>
Nach dem Login kopieren

输出:

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

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

🎜usort(), um ein Array mithilfe einer benutzerdefinierten Vergleichsfunktion zu sortieren. Mit dieser Funktion können wir das Array nach angegebenen Schlüssel-Wert-Paaren sortieren und dabei die Schlüsselnamen beibehalten. 🎜rrreee🎜Ausgabe: 🎜rrreee🎜In diesem Beispiel definieren wir eine Vergleichsfunktion compare(), die die key-Werte von Array-Elementen vergleicht. Anschließend verwenden wir die Funktion usort(), um das Array nach dem Wert key zu sortieren. 🎜🎜🎜Praktischer Fall🎜🎜🎜Betrachten wir einen praktischen Fall, bei dem wir die Funktion usort() verwenden, um die Kommentare eines Blogbeitrags nach der Anzahl der Likes zu sortieren. 🎜rrreee🎜Ausgabe: 🎜rrreee🎜In diesem Beispiel verwenden wir die Funktion compareComments(), um das Kommentararray nach Likes-Werten (absteigende Reihenfolge) zu sortieren. Anschließend durchlaufen wir das sortierte Array und zeigen den Inhalt und die Anzahl der „Gefällt mir“-Angaben für jeden Kommentar an. 🎜

Das obige ist der detaillierte Inhalt vonSortieren Sie Arrays in PHP nach mehrstufigen Schlüsselwerten und behalten Sie dabei die Schlüsselnamen bei. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!