Heim  >  Artikel  >  Backend-Entwicklung  >  Wie sortiere ich Zeitstempel in einem Array unter Beibehaltung der Schlüsselnamen mit PHP?

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

WBOY
WBOYOriginal
2024-05-03 22:36:01660Durchsuche

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);

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

排序比较函数

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

function sort_function(mixed $a, mixed $b): int

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

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

基于时间戳排序

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

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

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

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

uasort($array, 'compare_timestamps');

print_r($array);

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
        )
)

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!

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