使用 PHP 对数组中 HH:mm 格式的字符串进行排序
Sorting strings in format HH:mm in array with PHP
我有一个这样的数组:
$x = array(
array(
'inicio' => '09:00',
'fim' => '09:30'
),
array(
'inicio' => '09:30',
'fim' => '10:00'
),
array(
'inicio' => '08:30',
'fim' => '09:00'
),
array(
'inicio' => '11:30',
'fim' => '12:00'
)
);
我必须通过 inicio
字段对此进行排序。我正在尝试使用 usort
喜欢这个但结果我只得到 1:
$y = usort($x, function($a, $b) {
return (explode(':', $b['inicio'])[0]*60 + explode(':', $b['inicio'])[1]) - (explode(':', $a['inicio'])[0]*60 + explode(':', $a['inicio'])[1]);
});
print_r($y);
我做错了什么?
1、usort不是return数组,是原地排序。医生说:
Returns TRUE on success or FALSE on failure.
2,你可以只比较 initio 字段
usort($x, function ($a, $b) { return strcmp($a['inicio'], $b['inicio']); });
print_r($x);
我有一个这样的数组:
$x = array(
array(
'inicio' => '09:00',
'fim' => '09:30'
),
array(
'inicio' => '09:30',
'fim' => '10:00'
),
array(
'inicio' => '08:30',
'fim' => '09:00'
),
array(
'inicio' => '11:30',
'fim' => '12:00'
)
);
我必须通过 inicio
字段对此进行排序。我正在尝试使用 usort
喜欢这个但结果我只得到 1:
$y = usort($x, function($a, $b) {
return (explode(':', $b['inicio'])[0]*60 + explode(':', $b['inicio'])[1]) - (explode(':', $a['inicio'])[0]*60 + explode(':', $a['inicio'])[1]);
});
print_r($y);
我做错了什么?
1、usort不是return数组,是原地排序。医生说:
Returns TRUE on success or FALSE on failure.
2,你可以只比较 initio 字段
usort($x, function ($a, $b) { return strcmp($a['inicio'], $b['inicio']); });
print_r($x);