本文目錄一覽:
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”:””}’;
}
希望能幫到你~
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/286914.html