對於一維數組,您可以使用強制轉換或 get_object_vars function.
轉換:
$array = (array) $object;
get_object_vars:
$array = get_object_vars($object);這兩種方法都會將物件轉換為陣列,它們表現出細微的差異。 get_object_vars 僅傳回可公開存取的屬性,除非在物件的範圍內呼叫。但是,轉換會保留所有成員,包括私有成員和受保護成員。 多維數組對於多維數組,您可以採用各種方法。
JSON編碼和解碼:
如果你的物件可以編碼為JSON,你可以使用PHP 原生JSON 函數:$array = json_decode(json_encode($object), true);此方法不包含私有和受保護成員,不適合包含非JSON 編碼資料的物件。
遞歸函數:
以下函數遞歸地將物件轉換為數組,包括私有的和受保護的成員:function objectToArray($object) { if(!is_object($object) && !is_array($object)) return $object; return array_map('objectToArray', (array) $object); }
以上是如何有效地將PHP物件轉換為陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!