我遇到了需要按日期对JSON对象排序的情况。我已经在网上搜索过解决方案,所有的东西都指向PHP的乌斯托函数,但是全 示例有一个键/值对来排序。
我就是这样加载提要的:
$ret = file_get_contents($url);
$res = json_encode($ret);Wich在以下JSON中的结果
{
"2015-12-14":{
"direction":"S",
"snowfall":0.0,
[..]
},
"2015-12-15":{
"direction":"S",
"snowfall":3.0,
[..]
},
"2015-12-12":{
"direction":"SE",
"snowfall":0.0,
[..]
},
"2015-12-13":{
"direction":"S",
"snowfall":0.0,
[..]
},
"2015-12-10":{
"direction":"E",
"snowfall":0.0,
[..]
},
"2015-12-11":{
"direction":"S",
"snowfall":0.0,
[..]
}
}如你所见,数据没有按日期正确排序,但日期值是关键,所以我如何按日期对对象进行排序(2015-12-10,2015-12-11,2015-12-12,2015-12-13,2015-12-14,2015-12-15)?
发布于 2015-12-10 09:19:47
$json = '{
"2015-12-14":{
"direction":"S",
"snowfall":0.0
},
"2015-12-15":{
"direction":"S",
"snowfall":3.0
},
"2015-12-12":{
"direction":"SE",
"snowfall":0.0
},
"2015-12-13":{
"direction":"S",
"snowfall":0.0
},
"2015-12-10":{
"direction":"E",
"snowfall":0.0
},
"2015-12-11":{
"direction":"S",
"snowfall":0.0
}
}';
$array = get_object_vars(json_decode($json));
ksort($array);
echo json_encode((object)$array);发布于 2015-12-10 09:14:07
在对数据进行编码之前,只需对数据进行排序,就可以使用类似于克索德的内容
$ret = file_get_contents($url);
ksort($ret);
$res = json_encode($ret);这样,$ret似乎返回的数组将按键(日期)排序,然后按排序顺序进行编码。
发布于 2015-12-10 09:14:20
您可以使用克索德,它可以按键对数组进行排序。
您也可以使用排序标志,它们是描述良好的这里。
https://stackoverflow.com/questions/34197711
复制相似问题