Heim  >  Artikel  >  Backend-Entwicklung  >  PHP Wie sortiere ich ein Array nach Wert und behalte dabei die ursprünglichen Schlüsselnamen bei?

PHP Wie sortiere ich ein Array nach Wert und behalte dabei die ursprünglichen Schlüsselnamen bei?

WBOY
WBOYOriginal
2024-05-04 08:06:02742Durchsuche

PHP bietet zwei Möglichkeiten, assoziative Arrays nach Wert zu sortieren: Verwenden Sie die Funktion asort(): Sortieren Sie die Werte von klein nach groß und behalten Sie dabei die ursprünglichen Schlüsselnamen bei. Verwenden der Funktion usort() und Abschlüsse: Sortieren Sie Werte mithilfe einer benutzerdefinierten Vergleichsfunktion und behalten Sie dabei die ursprünglichen Schlüsselnamen bei.

PHP 如何按值对数组进行排序,同时保留原始键名?

Verwenden Sie die Funktion asort(). asort() 函数

PHP 的 asort() 函数可按值对关联数组进行排序,同时保留原始键名。它接受一个关联数组作为参数,并按照从小到大的顺序对值进行排序。

<?php
$arr = [
    "apple" => 5,
    "banana" => 3,
    "orange" => 2,
    "grape" => 4,
];

asort($arr);

print_r($arr);
?>

输出:

Array
(
    [orange] => 2
    [banana] => 3
    [grape] => 4
    [apple] => 5
)

如你所见,数组的值已按从小到大的顺序排序,但键名保留不变。

使用 usort() 函数和闭包

另一种方法是使用 usort() 函数和闭包。usort() 接受一个回调函数作为参数,该函数用于比较数组中的元素。闭包是一种匿名函数,可用作回调。

<?php
$arr = [
    "apple" => 5,
    "banana" => 3,
    "orange" => 2,
    "grape" => 4,
];

usort($arr, function ($a, $b) {
    return $a[1] - $b[1];
});

print_r($arr);
?>

输出:

Array
(
    [orange] => 2
    [banana] => 3
    [grape] => 4
    [apple] => 5
)

在这种情况下,闭包会比较每个元素的值 ($a[1]$b[1]),并返回 -101

PHPs Funktion asort() sortiert ein assoziatives Array nach Wert und behält dabei den ursprünglichen Schlüsselnamen bei. Es akzeptiert ein assoziatives Array als Argument und sortiert die Werte vom kleinsten zum größten. 🎜rrreee🎜Ausgabe: 🎜rrreee🎜Wie Sie sehen können, wurden die Werte des Arrays von klein nach groß sortiert, die Schlüsselnamen bleiben jedoch unverändert. 🎜🎜🎜Verwenden Sie die Funktion usort() und den Abschluss. 🎜🎜Eine andere Möglichkeit besteht darin, die Funktion und den Abschluss usort() zu verwenden. usort() akzeptiert eine Callback-Funktion als Parameter, die zum Vergleichen von Elementen im Array verwendet wird. Ein Abschluss ist eine anonyme Funktion, die als Rückruf verwendet werden kann. 🎜rrreee🎜Ausgabe: 🎜rrreee🎜In diesem Fall vergleicht der Abschluss den Wert jedes Elements ($a[1] und $b[1]) und gibt zurück -1, 0 oder 1, je nachdem, welcher Wert größer ist. 🎜

Das obige ist der detaillierte Inhalt vonPHP Wie sortiere ich ein Array nach Wert und behalte dabei die ursprünglichen Schlüsselnamen bei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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