JSON_ENCODE 對稀疏數組進行不同的編碼:物件與數組
使用稀疏數組時,了解 json_encode 的行為非常重要。稀疏數組是包含缺失索引的數組,會在數字序列中產生間隙。
問題
如提供的程式碼片段所示,json_encode 最初對稀疏數組進行編碼數組 $a 作為數組。但是,在使用 unset 刪除元素後,後續的 json_encode 呼叫會產生 JSON 物件。
說明
JSON 無法表示缺少索引的陣列。因此,當遇到此類間隙時,json_encode 會回退到將稀疏數組編碼為 JSON 物件。
解決方案
要避免這種行為並確保稀疏數組一致編碼為數組,您可以在應用 json_encode 之前使用 array_values($a)。此函數重新索引數組,消除間隙並確保輸出一致。
以上是為什麼「json_encode」根據稀疏數組的結構對其進行不同的處理?的詳細內容。更多資訊請關注PHP中文網其他相關文章!