在 PHP 中將物件轉換為陣列
PHP 中的物件表示複雜的資料結構,而陣列則是索引集合。要將物件轉換為數組,必須根據所需數組的維數選擇適當的方法。
單維數組
對於一維數組,常用兩種方法:
(數組) Cast:
$array = (array) $object;
get_object_vars:
$array = get_object_vars($object);
這些方法之間的主要區別在於他們如何對待物件屬性。 get_object_vars 僅傳回公有屬性,而 (array) 將所有屬性(包括私有屬性和受保護屬性)強制轉換為陣列。
多維數組$array = json_decode(json_encode($object), true);轉換多維物件對陣列提出了更大的挑戰。一個可能的解決方案是利用 PHP 的 JSON 函數:
function objectToArray ($object) { if(!is_object($object) && !is_array($object)) return $object; return array_map('objectToArray', (array) $object); }但是,此方法不包括私有和受保護的屬性,並且不適合包含非 JSON 編碼資料的物件。 另一種方法是使用以下函數,遞歸地將物件屬性轉換為陣列:該函數確保所有物件屬性(包括私有屬性和受保護屬性)包含在結果數組中。
以上是如何將 PHP 物件轉換為陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!