当前位置:Gxlcms > PHP教程 > natsort()排列json数据时报错。解决方法

natsort()排列json数据时报错。解决方法

时间:2021-07-01 10:21:17 帮助过:18人阅读

natsort()排列json数据时报错。
PHP code
$json = '[{"name":"a1"},{"name":"a10"},{"name":"a12"},{"name":"a3"},{"name":"a5"},{"name":"b21"},{"name":"b2"},{"name":"b11"}]';
natsort($json);
$data = json_decode($json);
foreach ($data as $row) {
    echo $row->name.'
';// }


为什么会提示 Warning: natsort() expects parameter 1 to be array, string given in d:\www\test.php?
另外natsort()和strnatcmp()的区别在哪里?
谢谢。


------解决方案--------------------
natsort 是数组排序函数,不能作用于字符窜

------解决方案--------------------
PHP code
$json = '[{"name":"a1"},{"name":"a10"},{"name":"a12"},{"name":"a3"},{"name":"a5"},{"name":"b21"},{"name":"b2"},{"name":"b11"}]';
$data = json_decode($json);
usort($data, 'cmp');
function cmp($a, $b) {
    if ($a->name == $b->name) return 0;
    return $a->name > $b->name ? 1 : -1;
}

foreach ($data as $row) {
    echo $row->name.'
';// }

人气教程排行