評價: 3 回應: 1 閱覽: 221
置頂

php 處理 json array unset 變成 object

板上各位大神好~~

太后在coding時

json 經過 unset 處理過後就會 json_encode 輸出就自動變成 object

可是 print_r 還是 array

請問要怎麼解決這個問題呢!?

coding如下: 

<?php
$raw_data = '{"status":"ok","data":{"rdata":[{"r1":"1","a1":"3323"},{"r1":"255","a1":"332443"} ]}}';
$json_obj = json_decode($raw_data);
 
$r_data = '{"r10":"1","a1":"3323"}';
$r_data_obj = json_decode($r_data);
 
foreach($json_obj->data->rdata as $key=>$tag_name){
    if($tag_name->r1 == "1"){
        unset($json_obj->data->rdata[$key]);
    }
}
$json_obj->data->rdata[] = $r_data_obj;
print_r($json_obj);
echo json_encode($json_obj);

感謝板上各位大大幫解答了~~

熱門回應

假如php array的size是n,index必須是0 ~ n-1

json_encode時才能轉成array,否則會轉成object

因為json的array index 只能是0 ~ n-1

你的rdata的index是1和2,所以沒辦法轉成json array

會員登入 (先登入會員才能回覆留言喔!)

Facebook留言