php根据json其中的一个键值大小重新排序 15

{"data":[{"num":"20","sex":"0"},{"num":"35","sex":"1"},{"num":"16","sex":"0"}]}想通过php... {
"data":[
{"num":"20","sex":"0"},
{"num":"35","sex":"1"},
{"num":"16","sex":"0"}
]
}

想通过php按num从小到大重新排序,生成
{
"data":[
{"num":"16","sex":"0"},
{"num":"20","sex":"0"},
{"num":"35","sex":"1"}
]
}
展开
 我来答
散文精选大全
推荐于2017-12-16 · 想要多少有多少,都来看看
散文精选大全
采纳数:176 获赞数:243

向TA提问 私信TA
展开全部
在php对json直接操作成本太高,所以应该将json先转化为数组,对数组排序就很好弄了,具体操作如下:
//先将json转化为数组:
$people =json_decode($people,true);
//排序方法
function my_sort($arrays,$sort_key,$sort_order=SORT_ASC,$sort_type=SORT_NUMERIC ){
if(is_array($arrays)){
foreach ($arrays as $array){
if(is_array($array)){
$key_arrays[] = $array[$sort_key];
}else{
return false;
}
}
}else{
return false;
}
array_multisort($key_arrays,$sort_order,$sort_type,$arrays);
return $arrays;
}
//测试效果
$person = array(
array('num'=>1,'sex'=>'1'),
array('num'=>2,'sex'=>'0'),
array('num'=>3,'sex'=>'1'),
array('num'=>4,'sex'=>'1'),
array('num'=>5,'sex'=>'0'),
array('num'=>6,'sex'=>'0'),
array('num'=>7,'sex'=>'0')
);

var_dump($person);

$person = my_sort($person,'num',SORT_ASC,SORT_STRING);

var_dump($person);

$person = my_sort($person,'sex');

var_dump($person);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式