Wie sortiere ich Zeitstempel in einem Array unter Beibehaltung der Schlüsselnamen mit PHP?

WBOY
Freigeben: 2024-05-03 22:36:01
Original
659 Leute haben es durchsucht

Das Array kann über die Funktion uasort() sortiert werden, wobei seine Schlüsselnamen erhalten bleiben. Um nach Zeitstempeln zu sortieren, können Sie die benutzerdefinierte Vergleichsfunktion „compare_timestamps“ verwenden, die die Zeitstempelfelder in Elementen vergleicht. Im konkreten Fall werden mit dieser Vergleichsfunktion die Zeitstempel im Array sortiert, die Schlüsselnamen bleiben erhalten und das sortierte Array wird von klein nach groß ausgegeben.

如何使用 PHP 对数组中的时间戳进行排序,保留键名?

Sortieren Sie ein Array nach Zeitstempel in PHP und behalten Sie dabei seine Schlüssel bei.

In PHP können wir die Funktion uasort() verwenden, um ein Array zu sortieren und dabei den Namen seines Schlüssels beizubehalten. Dies ist die Syntax zum Sortieren eines Arrays: uasort() 函数对数组进行排序,同时保留其键名。这是排序数组的语法:

uasort($array, $sort_function);
Nach dem Login kopieren

其中,$array 是要排序的数组,$sort_function 是用户定义的比较函数。

排序比较函数

排序比较函数必须遵循特定的格式:

function sort_function(mixed $a, mixed $b): int
Nach dem Login kopieren

它需要接受两个参数,$a$b,这些参数代表要比较的数组元素。函数应该返回以下值:

  • -1:如果 $a 应该排在 $b 之前。
  • 0:如果 $a 和 $b 相等。
  • 1:如果 $a 应该排在 $b 之后。

基于时间戳排序

要基于时间戳对数组进行排序,我们可以使用以下排序比较函数:

function compare_timestamps(mixed $a, mixed $b): int
{
    return $a['timestamp'] - $b['timestamp'];
}
Nach dem Login kopieren

此函数比较数组元素中的 timestamp

$array = [
    'item1' => ['timestamp' => 1593475200],
    'item2' => ['timestamp' => 1601260800],
    'item3' => ['timestamp' => 1584230400],
];

uasort($array, 'compare_timestamps');

print_r($array);
Nach dem Login kopieren

wobei $array das zu sortierende Array und $sort_function die benutzerdefinierte Vergleichsfunktion ist.

Sortiervergleichsfunktion

Die Sortiervergleichsfunktion muss einem bestimmten Format folgen:

Array
(
    [item3] => Array
        (
            [timestamp] => 1584230400
        )

    [item1] => Array
        (
            [timestamp] => 1593475200
        )

    [item2] => Array
        (
            [timestamp] => 1601260800
        )
)
Nach dem Login kopieren
Sie muss zwei Parameter akzeptieren, $a und $b Parameter Stellt die zu vergleichenden Array-Elemente dar. Die Funktion sollte den folgenden Wert zurückgeben:

  • -1: wenn $a vor $b stehen soll.
  • 0: Wenn $a und $b gleich sind.
  • 1: Wenn $a nach $b kommen soll.
🎜Sortierung nach Zeitstempel🎜🎜🎜Um ein Array nach Zeitstempel zu sortieren, können wir die folgende Sortiervergleichsfunktion verwenden: 🎜rrreee🎜Diese Funktion vergleicht den Zeitstempel im Array Elements-Code>-Feld und gibt den entsprechenden Wert zurück, um die Elemente in die richtige Reihenfolge zu bringen. 🎜🎜🎜 Praktisches Beispiel 🎜🎜🎜 Hier ist ein praktisches Beispiel für das Sortieren von Zeitstempeln in einem Array mithilfe unserer Sortierfunktion: 🎜rrreee🎜Ausgabe: 🎜rrreee🎜Wie Sie sehen können, wurde das Array in der Reihenfolge der Zeitstempel sortiert, wobei der Schlüsselname beibehalten wurde. 🎜

Das obige ist der detaillierte Inhalt vonWie sortiere ich Zeitstempel in einem Array unter Beibehaltung der Schlüsselnamen mit PHP?. 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!