Heim >Backend-Entwicklung >PHP-Tutorial >Neue numerische Sortierfunktion in PHP8.1

Neue numerische Sortierfunktion in PHP8.1

王林
王林Original
2023-07-09 22:07:351053Durchsuche

Neue numerische Sortierfunktion in PHP8.1

PHP ist eine weit verbreitete Open-Source-Skriptsprache, die häufig in der Webentwicklung verwendet wird. Es ist nicht nur leistungsstark, sondern verfügt auch über eine umfangreiche integrierte Funktionsbibliothek. In der kürzlich veröffentlichten Version von PHP 8.1 wurden einige interessante Features und Funktionen hinzugefügt, darunter numerische Sortierfunktionen. Diese neuen Funktionen können Entwicklern das Sortieren numerischer Arrays erleichtern und so die Entwicklungseffizienz und die Lesbarkeit des Codes verbessern.

In früheren PHP-Versionen haben wir normalerweise die Funktion sort() oder rsort() zum Sortieren von Arrays verwendet, aber diese Funktionen verwendeten standardmäßig auch die Wörterbuchsortierung Es ist sortiert nach den Vergleichsregeln von Strings. Dies kann beim Sortieren eines Zahlenarrays zu unerwarteten Ergebnissen führen. In PHP8.1 können zwei neue Funktionen, usort() und uasort(), zum Sortieren von Arrays nach benutzerdefinierten Sortierregeln, einschließlich numerischer Sortierung, verwendet werden. sort()rsort()函数对数组进行排序,但这些函数默认使用的是字典排序,也就是按照字符串的比较规则进行排序。这样在对数字数组进行排序时,可能会得到不符合预期的结果。而在PHP8.1中,新增了usort()uasort()两个函数,可以通过自定义的排序规则对数组进行排序,包括数字排序。

接下来,我们将介绍这两个新函数的用法,并通过示例代码演示它们的功能。

首先是usort()函数,它接受两个参数:需要进行排序的数组和一个自定义的比较函数。该函数在排序过程中会多次调用自定义函数来比较数组中的元素,以确定它们的顺序。自定义函数需要返回一个整数值,表示两个元素的比较结果。

下面是一个使用usort()函数对数字数组进行从小到大排序的示例代码:

$numbers = [5, 2, 8, 1, 9];

usort($numbers, fn($a, $b) => $a - $b);

print_r($numbers);

输出结果为:Array ( [0] => 1 [1] => 2 [2] => 5 [3] => 8 [4] => 9 )。可以看到,数组中的数字已经按照从小到大的顺序进行了排序。

usort()函数类似,uasort()函数也是接受两个参数:需要进行排序的数组和一个自定义的比较函数。不同之处在于,uasort()函数在排序过程中会保留数组的键-值关系,而不仅仅是根据值进行排序。

下面是一个使用uasort()函数对关联数组进行从大到小排序的示例代码:

$grades = [
    'Alice' => 85,
    'Bob' => 92,
    'Charlie' => 78,
    'David' => 89
];

uasort($grades, fn($a, $b) => $b - $a);

print_r($grades);

输出结果为:Array ( [Bob] => 92 [David] => 89 [Alice] => 85 [Charlie] => 78 )。可以看到,数组中的元素按照从大到小的顺序排列,并且键-值关系保持不变。

总结起来,PHP8.1新增的数字排序函数usort()uasort()
Als nächstes stellen wir die Verwendung dieser beiden neuen Funktionen vor und demonstrieren ihre Funktionalität anhand von Beispielcode.

Die erste ist die Funktion usort(), die zwei Parameter akzeptiert: das zu sortierende Array und eine benutzerdefinierte Vergleichsfunktion. Diese Funktion ruft während des Sortiervorgangs mehrmals eine benutzerdefinierte Funktion auf, um die Elemente im Array zu vergleichen und ihre Reihenfolge zu bestimmen. Die benutzerdefinierte Funktion muss einen ganzzahligen Wert zurückgeben, der das Vergleichsergebnis zweier Elemente darstellt.

🎜Das Folgende ist ein Beispielcode, der die Funktion usort() verwendet, um ein Array von Zahlen von klein nach groß zu sortieren: 🎜rrreee🎜Das Ausgabeergebnis ist: Array ( [0] = > 1 [1 ] => 2 [2] => 8 [4] => Wie Sie sehen können, wurden die Zahlen im Array von klein nach groß sortiert. 🎜🎜Ähnlich wie die Funktion <code>usort() akzeptiert auch die Funktion uasort() zwei Parameter: das zu sortierende Array und eine benutzerdefinierte Vergleichsfunktion. Der Unterschied besteht darin, dass die Funktion uasort() die Schlüssel-Wert-Beziehung des Arrays während des Sortiervorgangs beibehält und nicht nur nach Werten sortiert. 🎜🎜Das Folgende ist ein Beispielcode, der die Funktion uasort() verwendet, um ein assoziatives Array von groß nach klein zu sortieren: 🎜rrreee🎜Das Ausgabeergebnis ist: Array ( [Bob] =&gt ; 92 [ David] => 89 [Alice] => 85 [Charlie] => Wie Sie sehen, sind die Elemente im Array in absteigender Reihenfolge angeordnet und die Schlüssel-Wert-Beziehung bleibt unverändert. 🎜🎜Zusammenfassend lässt sich sagen, dass die neuen numerischen Sortierfunktionen <code>usort() und uasort() in PHP8.1 Entwicklern flexiblere Sortieroptionen bieten und die numerische Sortierung erleichtern Arrays Sortieren ist bequemer und effizienter. 🎜Ob von klein nach groß oder von groß nach klein, diese beiden Funktionen können durch benutzerdefinierte Vergleichsfunktionen die Anforderungen von Entwicklern erfüllen. In praktischen Anwendungen können wir diese beiden Funktionen entsprechend unterschiedlichen Sortieranforderungen verwenden, um die Lesbarkeit und Wartbarkeit des Codes zu verbessern. 🎜🎜Wenn Sie immer noch die alte Sortiermethode zum Sortieren numerischer Arrays verwenden, können Sie auch diese beiden neuen Funktionen ausprobieren. Ich glaube, sie werden Sie überraschen. Begrüßen wir die neuen Funktionen von PHP8.1, verbessern wir die Entwicklungseffizienz und schreiben wir eleganteren Code! 🎜

Das obige ist der detaillierte Inhalt vonNeue numerische Sortierfunktion in PHP8.1. 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