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.
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()
函数将保持原始顺序。-
和 +
uksort()
Die ursprüngliche Reihenfolge wird beibehalten. 🎜-
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!