【发布时间】:2017-04-24 08:27:21
【问题描述】:
原问题:url
捷克语排序现在可以正常工作,但数字不能正常工作。例如对于这个数组:
$data = array(
'items' => array(
0 => array('city' => 'Praha 10'),
1 => array('city' => 'Praha 2'),
2 => array('city' => 'Praha 1'),
3 => array('city' => 'Cheb'),
4 => array('city' => 'České budějovice'),
5 => array('city' => 'Šatov')
),
);
$body = wp_remote_retrieve_body( $request );
$data = json_decode( $body, true )['data']['items'];
usort($data,
function($a,$b) {
$coll = collator_create( 'cs_CZ' );
$aSortKey = collator_get_sort_key($coll, $a['city']);
$bSortKey = collator_get_sort_key($coll, $b['city']);
return $aSortKey >= $bSortKey;
;}
);
结果将是:Cheb、České Budějovice、Praha 1、Praha 10、Praha 2、Šatov。
但正确的应该是:Cheb、České Budějovice、Praha 1、Praha 2、Praha 10、Šatov。
所以像 2 这样较小的数字必须在 10 或更高之前。
【问题讨论】:
-
问题是你看到的不是数字。这些只是包含一些数字的字符串。如果您需要以数字方式排序,则需要提取数字并按它们排序。