本文目錄一覽:
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_encode($arr) 為什麼會改變數組的順序,怎麼解決。在線等
你這是接口嗎?如果傳給值的人,用的還是PHP,用asort()就可以了。如果是傳到了HTML頁面上,讓JS處理,其實也簡單。
如果要傳的值,需要準確排序,那你在json_encode()之前,可以“0,1,2···”的提前排好序。如果不用的話,更簡單,直接0,1,2,3···等等數字改為數組鍵名。
到了html頁面上,for(
in
)應該就能在轉值後準確應對。
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);
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/236677.html