Tatasusunan boleh diisih melalui fungsi uasort(), mengekalkan nama utamanya. Untuk mengisih berdasarkan cap masa, anda boleh menggunakan fungsi perbandingan tersuai compare_timestamps, yang membandingkan medan cap masa dalam elemen. Dalam kes sebenar, fungsi perbandingan ini digunakan untuk mengisih cap masa dalam tatasusunan, mengekalkan nama kunci dan mengeluarkan tatasusunan yang diisih daripada kecil ke besar.
Isih tatasusunan mengikut cap masa dalam PHP sambil mengekalkan nama kunci
Dalam PHP, kita boleh menggunakan fungsi uasort()
untuk mengisih tatasusunan sambil mengekalkan nama kuncinya. Ini ialah sintaks untuk mengisih tatasusunan: 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);
$array
ialah tatasusunan yang hendak diisih dan $sort_function
ialah fungsi perbandingan yang ditentukan pengguna. Fungsi perbandingan isih
Fungsi perbandingan isihan mesti mengikut format tertentu:Array ( [item3] => Array ( [timestamp] => 1584230400 ) [item1] => Array ( [timestamp] => 1593475200 ) [item2] => Array ( [timestamp] => 1601260800 ) )
$a
dan $b
ini parameter Mewakili elemen tatasusunan untuk dibandingkan. Fungsi harus mengembalikan nilai berikut:
-1
: jika $a harus didahulukan sebelum $b. 0
: Jika $a dan $b adalah sama. 1
: Jika $a sepatutnya datang selepas $b. Atas ialah kandungan terperinci Bagaimana untuk mengisih cap masa dalam tatasusunan, mengekalkan nama kunci, menggunakan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!