À l'aide de la fonction uksort() et de la fonction de comparaison personnalisée compareKeyLengths, les tableaux PHP peuvent être triés en fonction de la longueur des noms de clé du tableau tout en conservant les noms de clé. La fonction de comparaison calcule la différence de longueurs de clé et renvoie un entier selon lequel uksort() trie le tableau. De plus, un cas pratique montre comment trier les enregistrements de la base de données par longueur de nom de champ.
En PHP, vous pouvez utiliser la fonction uksort()
pour trier le tableau en fonction de la longueur du nom de clé du tableau Sort. Cette fonction accepte une fonction de rappel comme paramètre, qui compare deux noms de clé et renvoie un entier représentant la différence de longueur de clé. 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()
conservera la commande originale. 🎜-
et +
) dans la fonction de comparaison. 🎜🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!