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('$res');</script>";
解決的方法是用sort函數再次索引即可。
$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('$res');</script>";
好吧......這似乎沒有寫一篇博客的價值,就當是給自己提個醒吧
以上就介紹了多維數組json_encode之後產生物件而不是數組問題,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。