首頁 >後端開發 >php教程 >如何將 PHP 物件轉換為陣列?

如何將 PHP 物件轉換為陣列?

DDD
DDD原創
2024-12-09 10:30:05654瀏覽

How Can I Convert a PHP Object to an Array?

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

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