將PHP 陣列編碼為JSON 陣列
當PHP 陣列轉換為JSON 陣列而不是物件時,就會出現這樣的困境非順序鍵。預設情況下,如果鍵不連續,則 json_encode() 會將陣列解釋為物件。
要解決此問題,了解 JSON RFC 8259 規格至關重要。它將數組定義為方括號,其中包含用逗號分隔的值。因此,要產生 JSON 數組,PHP 數組必須具有連續的數字鍵 (0, 1, 2, ...)。
在給定的範例中,PHP 陣列具有鍵 0 和 2,但沒有 1這種非順序鍵結構導致 json_encode() 將陣列視為物件。
要修正此問題並將陣列編碼為 JSON 數組,必須按順序重新索引它使用 array_values()。此函數建立一個具有連續數字鍵的新數組,有效地將原始數組轉換為 JSON 編碼可接受的格式。
以下程式碼片段示範如何使用 array_values() 來實現所需的結果:
echo json_encode(array_values($input));
以上是如何確保我的 PHP 數組編碼為 JSON 數組,而不是物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!