我试图用MONTH名称来缩短数组。
[
{
"order_id":34,
"user_id":17,
"sum":65000,
"month":"May"
},
{
"order_id":32,
"user_id":19,
"sum":15000,
"month":"July"
},
{
"order_id":29,
"user_id":1,
"sum":20000,
"month":"April"
}
]
我有什么办法可以快速对它进行排序?而且我需要以月份格式输入月份。
我期望得到这样的结果。
[
{
"order_id":29,
"user_id":1,
"sum":20000,
"month":"April"
},
{
"order_id":34,
"user_id":17,
"sum":65000,
"month":"May"
},
{
"order_id":32,
"user_id":19,
"sum":15000,
"month":"July"
}
]
我已经试过arsort
,krsort
,array_reverse()
,但这些方法都不能短它们。因此,为此寻求其他解决方案。
谢谢!(提前)
由于您的数据为json格式,因此无法直接在此处应用任何功能,您可以通过以下方式实现它:-
<?php
$data = '[
{
"order_id":34,
"user_id":17,
"sum":65000,
"month":"May"
},
{
"order_id":32,
"user_id":19,
"sum":15000,
"month":"July"
},
{
"order_id":29,
"user_id":1,
"sum":20000,
"month":"April"
}
]';
$new_array = json_decode($data,true); // convert json to php array
echo "<pre/>";print_r($new_array); // print original array
usort($new_array, "compare_months"); // using usort with callback function
var_dump($new_array); // your final sorted array
function compare_months($a, $b) {
$monthA = date_parse($a['month']);
$monthB = date_parse($b['month']);
return $monthA["month"] - $monthB["month"];
}
?>
输出:-https : //eval.in/598786
参考采取:-
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句