置頂
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);
感謝板上各位大大幫解答了~~
up vote
0
假如php array的size是n,index必須是0 ~ n-1
json_encode時才能轉成array,否則會轉成object
因為json的array index 只能是0 ~ n-1
你的rdata的index是1和2,所以沒辦法轉成json array
會員登入
(先登入會員才能回覆留言喔!)
