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

clockwize 2012-05-22 03:32:46
$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()的区别在哪里?
谢谢。
...全文
92 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
clockwize 2012-05-23
  • 打赏
  • 举报
回复
感谢大家。
xuzuning 2012-05-22
  • 打赏
  • 举报
回复
natsort 是数组排序函数,不能作用于字符窜
乌镇程序员 2012-05-22
  • 打赏
  • 举报
回复
$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 />';//
}
风.foxwho 2012-05-22
  • 打赏
  • 举报
回复
恭喜楼上抢答成功!!!

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧