Menggunakan fungsi uksort() dan fungsi perbandingan tersuai compareKeyLengths, tatasusunan PHP boleh diisih mengikut panjang nama kunci tatasusunan sambil mengekalkan nama kunci. Fungsi perbandingan mengira perbezaan dalam panjang kunci dan mengembalikan integer mengikut mana uksort() mengisih tatasusunan. Di samping itu, kes praktikal menunjukkan cara mengisih rekod daripada pangkalan data mengikut panjang nama medan.
Dalam PHP, anda boleh menggunakan fungsi uksort()
untuk mengisih tatasusunan berdasarkan panjang nama kunci tatasusunan Sort. Fungsi ini menerima fungsi panggil balik sebagai parameter, yang membandingkan dua nama kunci dan mengembalikan integer yang mewakili perbezaan panjang kunci. 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()
akan menyimpan pesanan asal. 🎜+
) dalam fungsi perbandingan. 🎜🎜Atas ialah kandungan terperinci Bagaimana untuk mengisih kunci tatasusunan mengikut panjangnya dalam PHP dan menyimpan kuncinya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!