iT邦幫忙

0

json有辦法排序列出來嗎?

php

在php裡,json碼如下

{"img": [{"name": "A", "sort": "1"}, {"name": "B", "sort": "3"}, {"name": "C", "sort": "2"}]}

有辦法照sort排列出資料嗎?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

12
fillano
iT邦超人 1 級 ‧ 2009-06-25 09:33:05
最佳解答

在php的話,大概像這樣:

<pre class="c" name="code">
<?php
$json = '{"img": [{"name": "A", "sort": "1"}, {"name": "B", "sort": "3"}, {"name": "C", "sort": "2"}]}';

$obj = json_decode($json);
$arr = $obj->img;

print_r($arr);
usort($arr, "cmp");
print_r($arr);

function cmp($a, $b) {
	if($a->sort == $b->sort) return 0;
	return ($a->sort < $b->sort) ? -1 : 1;
}
?>

javascript的array也有提供類似的排序方法,讓你用自訂函數來排序。

fillano iT邦超人 1 級 ‧ 2009-06-25 09:46:38 檢舉

補充:其實可以直接對$obj->img做排序啦。

chan15 iT邦新手 3 級 ‧ 2009-06-25 13:12:10 檢舉

上面的方法有成功,請問您說的可以直接對$obj->img排序是什麼意思?

fillano iT邦超人 1 級 ‧ 2009-06-25 17:59:17 檢舉

我那樣寫多用了一個變數,其實可以:
usort($obj->img, "cmp");

我要發表回答

立即登入回答