首頁 >後端開發 >php教程 >如何確保我的 PHP 數組編碼為 JSON 數組,而不是物件?

如何確保我的 PHP 數組編碼為 JSON 數組,而不是物件?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-26 02:42:09274瀏覽

How Can I Ensure My PHP Array Encodes as a JSON Array, Not an Object?

將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中文網其他相關文章!

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