Heim  >  Artikel  >  Backend-Entwicklung  >  Wie sortiere ich Array-Schlüssel nach ihrer Länge in PHP und behalte die Schlüssel?

Wie sortiere ich Array-Schlüssel nach ihrer Länge in PHP und behalte die Schlüssel?

王林
王林Original
2024-05-02 13:03:02981Durchsuche

Mit der Funktion uksort() und der benutzerdefinierten Vergleichsfunktion CompareKeyLengths können PHP-Arrays nach der Länge der Array-Schlüsselnamen sortiert werden, während die Schlüsselnamen beibehalten werden. Die Vergleichsfunktion berechnet die Differenz der Schlüssellängen und gibt eine Ganzzahl zurück, nach der uksort() das Array sortiert. Darüber hinaus wird an einem praktischen Fall gezeigt, wie Datensätze aus der Datenbank nach der Länge des Feldnamens sortiert werden.

PHP 中如何根据数组键名长度进行排序,保留键名?

So sortieren Sie ein PHP-Array basierend auf der Länge des Array-Schlüsselnamens (unter Beibehaltung des Schlüsselnamens)

In PHP können Sie die Funktion uksort() verwenden, um das Array zu sortieren Sortieren Sie basierend auf der Länge des Array-Schlüsselnamens. Diese Funktion akzeptiert eine Rückruffunktion als Parameter, die zwei Schlüsselnamen vergleicht und eine Ganzzahl zurückgibt, die den Unterschied in der Schlüssellänge darstellt. uksort() 函数根据数组键名的长度对数组进行排序。该函数接受一个回调函数作为参数,该函数比较两个键名并返回一个整数,表示键名长度的差值。

排序代码:

<?php
function compareKeyLengths(string $key1, string $key2): int
{
    return strlen($key1) - strlen($key2);
}

$array = ['key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3'];

uksort($array, 'compareKeyLengths');

print_r($array);

输出:

Array
(
    [key1] => value1
    [key2] => value2
    [key3] => value3
)

如您所见,数组已根据键名长度进行排序,同时保留了键名。

实战案例:

这是一个将来自数据库的记录按字段名称长度排序的示例。

<?php
$records = [
    ['firstName' => 'John', 'lastName' => 'Doe'],
    ['firstName' => 'Jane', 'lastName' => 'Smith'],
    ['firstName' => 'Bob', 'lastName' => 'Johnson'],
];

uksort($records, 'compareKeyLengths');

foreach ($records as $record) {
    echo 'Name: ' . $record['firstName'] . ' ' . $record['lastName'] . PHP_EOL;
}

输出:

Name: Bob Johnson
Name: Jane Smith
Name: John Doe

注意:

  • 如果键名长度相等,uksort() 函数将保持原始顺序。
  • 如果需要降序排序,可以在比较函数中交换减法运算符(-+
  • Sortiercode:
rrreee🎜Ausgabe:🎜rrreee🎜Wie Sie sehen können, wurde das Array nach der Schlüssellänge sortiert, wobei die Schlüsselnamen erhalten blieben. 🎜🎜Praktischer Fall:🎜🎜Dies ist ein Beispiel für das Sortieren von Datensätzen aus einer Datenbank nach Feldnamenlänge. 🎜rrreee🎜Ausgabe: 🎜rrreee🎜Hinweis: 🎜
  • Wenn die Schlüssellängen gleich sind, funktioniert die Funktion uksort() Die ursprüngliche Reihenfolge wird beibehalten. 🎜
  • Wenn Sie in absteigender Reihenfolge sortieren müssen, können Sie die Subtraktionsoperatoren (- und +) in der Vergleichsfunktion vertauschen. 🎜🎜

Das obige ist der detaillierte Inhalt vonWie sortiere ich Array-Schlüssel nach ihrer Länge in PHP und behalte die Schlüssel?. 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