php關聯數組排序後,用json_encode輸出給前端,為什麼順序會改變?
這是用file_put_contents函數寫入到檔案裡的排序過的數組,順序是對的。
這是用echo json_encode()輸出到前台的數據,順序改變了。
為什麼呢?想不通啊,誰能解答一下。
php關聯數組排序後,用json_encode輸出給前端,為什麼順序會改變?
這是用file_put_contents函數寫入到檔案裡的排序過的數組,順序是對的。
這是用echo json_encode()輸出到前台的數據,順序改變了。
為什麼呢?想不通啊,誰能解答一下。
雖然php的陣列有序,javascript或者說json標準中的Object是不保證順序的,json庫任意改變key都是符合標準的行為,任何特定實現中對key順序的處理(保留/排序/亂序)都不應當被依賴
如果要保障順序,建議修改資料結構用"array of object"實作
<code>{ cnt: [ {id: "12", value:"1"}, {id: "03", value:"1"}, ...</code>
json
是無序的
之前遇過類似的問題,你可以把json_encode的值以字串的形式輸出,前端拿到串自己轉換處理一下試試
在Chrome中,的確會有這種情況
即使你在後台輸出的 key => value
結構,json_encode
順序也正常
但是,Chrome 會排序,即使是「字串KEY」、「數字KEY」,一律按照正序排列
所以最終的解決方案是
array_value