捷克语php中的排序数据数组结构-正确的数字排序
原始问题: 捷克语的排序现在正在运行,但数字排序却没有。例如,对于此阵列:捷克语php中的排序数据数组结构-正确的数字排序,php,arrays,json,sorting,Php,Arrays,Json,Sorting,原始问题: 捷克语的排序现在正在运行,但数字排序却没有。例如,对于此阵列: $data = array( 'items' => array( 0 => array('city' => 'Praha 10'), 1 => array('city' => 'Praha 2'), 2 => array('city' => 'Praha 1'), 3 => array('city' => 'Cheb'), 4
$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;
;}
);
结果将是:切布、塞斯克·巴德·乔维奇、普拉哈1号、普拉哈10号、普拉哈2号、萨托夫
但正确的答案应该是:切布、塞斯克·巴德·乔维奇、普拉哈1号、普拉哈2号、普拉哈10号、萨托夫
因此,较小的数字(如2)必须在10或更高之前。您是否尝试替代usort?您是否尝试替代usort?在PHP中,自然排序可以轻松处理此问题: 以下是如何做到这一点的官方链接: 标准分类:
Array
(
[3] => img1.png
[1] => img10.png
[0] => img12.png
[2] => img2.png
)
自然顺序排序:
Array
(
[3] => img1.png
[2] => img2.png
[1] => img10.png
[0] => img12.png
)
在PHP中,自然排序可以轻松处理这一问题: 以下是如何做到这一点的官方链接: 标准分类:
Array
(
[3] => img1.png
[1] => img10.png
[0] => img12.png
[2] => img2.png
)
自然顺序排序:
Array
(
[3] => img1.png
[2] => img2.png
[1] => img10.png
[0] => img12.png
)
问题是你看到的不是数字。这些只是包含一些数字的字符串。如果你需要以数字方式排序,你需要提取数字并按它们排序。问题是你看到的不是数字。这些只是包含一些数字的字符串。如果您需要以数字方式进行排序,则需要提取数字并按其排序。它不起作用,正如我从文档中看到的,无法使用内部定义函数的natsort。它不起作用,正如我从文档中看到的,无法使用内部定义函数的natsort。它不起作用,正如我从文档中看到的,不可能使用内部已定义函数的natsort。它不起作用,正如我从文档中看到的,不可能使用内部已定义函数的natsort。