Heim  >  Artikel  >  Backend-Entwicklung  >  natsort()排列json数据时报错。解决方法

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

WBOY
WBOYOriginal
2016-06-13 13:30:431205Durchsuche

natsort()排列json数据时报错。

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->$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.'<br>';//
}


为什么会提示 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.'<br>';//
} <div class="clear">
                 
              
              
        
            </div>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn