首页 > 编程知识 正文

phpjson对象排序,json排序 js

时间:2023-12-27 22:27:26 阅读:326098 作者:XKQO

本文目录一览:

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

在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);

php对象转json字符串时如何排序

建议把json字符串转为关联数组再来处理和排序:

$str='{"1":1,"3":2}';

$arr=json_decode($str,true);

$arr["2"]=3;

ksort($arr,1);

$str=json_encode($arr);

print_r($str);

如果一定要按对象来处理,就这样:

$str='{"1":1,"3":2}';

$obj=json_decode($str);

$k="2";

$obj-$k=3;

$arr=json_decode(json_encode($obj),true);

ksort($arr,1);

$str=json_encode($arr);

print_r($str);

大神帮忙改下PHP输出JSON结果的顺序

两种解决方案:

一、获取数据的时候倒序排列一下,即:

$result = mysql_query('select * from address_list ORDER BY id DESC',$link);

二、获取结果后倒序排列一下,可以参考:

array_reverse() 

if(mysql_num_rows($result)0){

    while($obj = mysql_fetch_object($result)){

        $arr[] = $obj;

    }

    $arr = array_reverse($arr);

    echo '{"data":{ "success": true, "punit": '.json_encode($arr).'}}';

}else{

    echo '{"success": false,"message":"读取数据失败","punit":""}';

}

希望能帮到你~

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。