首頁 >後端開發 >php教程 >多維數組json_encode之後產生物件而不是數組問題

多維數組json_encode之後產生物件而不是數組問題

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB原創
2016-07-29 08:58:051406瀏覽

json_encode函數可以對PHP的陣列進行編碼,傳回值是json格式的字串。對於多維數組進行json_encode,我一直以為是返回數組形式(形如{{obj1}, {obj2}, {obj3}}),但今天介面返回給客戶端發現變成了物件而不是數組(形如[{....},{.....},{.....}]),不方便客戶端操作,檢查程式碼才發現,我之前一個unset操作把多維數組的第一個單元被刪除了,導致回傳結果不一樣,下面看程式碼:

$arr = array(
<span style="white-space:pre">	</span>0=>array('name'=>'张三','age'=>'120'),
<span style="white-space:pre">	</span>1=>array('name'=>'李四','age'=>'111'),
<span style="white-space:pre">	</span>2=>array('name'=>'王五','age'=>'233')
);


$res = json_encode($arr);
echo "<script>console.log(&#39;$res&#39;);</script>";
結果如下:

多維數組json_encode之後產生物件而不是數組問題

解決的方法是用sort函數再次索引即可。


多維數組json_encode之後產生物件而不是數組問題

$arr = array(
	0=>array('name'=>'张三','age'=>'120'),
	1=>array('name'=>'李四','age'=>'111'),
	2=>array('name'=>'王五','age'=>'233')
);

unset($arr[0]); 
$res = json_encode($arr);
echo "<script>console.log(&#39;$res&#39;);</script>";

  好吧......這似乎沒有寫一篇博客的價值,就當是給自己提個醒吧

以上就介紹了多維數組json_encode之後產生物件而不是數組問題,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。 多維數組json_encode之後產生物件而不是數組問題

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn