首頁  >  文章  >  後端開發  >  php物件數組怎麼轉為普通數組

php物件數組怎麼轉為普通數組

PHPz
PHPz原創
2023-04-23 09:12:21513瀏覽

在PHP開發中,我們常常會用到物件陣列與普通陣列之間的轉換,尤其是在處理資料時,這種轉換是非常常見的。因此,本文將說明如何將PHP物件陣列轉換為普通數組。

在PHP中,物件數組是指由物件構成的數組,而普通數組是指由基本資料型別所構成的數組。物件數組是通常由資料庫查詢結果傳回,特別是在使用ORM框架時,ORM框架會將資料庫中的資料封裝成物件數組。

物件數組和普通數組之間的轉換非常簡單,只需要使用PHP中內建的函數即可完成。下面我們將一步步講解如何轉換。

  1. PHP中內建的函數

在PHP中,有兩個內建的函數可以完成物件陣列與普通陣列的相互轉換:

  • get_object_vars():將物件轉換為數組,傳回一個由屬性組成的關聯數組,其中鍵是屬性名,值是屬性值。
  • json_decode():將JSON格式的字串轉換為PHP實例或陣列,傳回一個標準的PHP陣列。
  1. 使用get_object_vars()函數

#我們可以透過get_object_vars()函數將物件陣列轉換為普通陣列。這個函數接收一個物件參數,傳回一個由屬性組成的關聯數組。以下是使用get_object_vars()函數的範例程式碼:

class Person {
    public $name = "John";
    public $age = 25;
    private $password = "123456";

    public function showDetails() {
        echo $this->name . " is " . $this->age . " years old \n";
    }
}

$person1 = new Person();
$person2 = new Person();
$person2->name = "Jessica";
$person2->age = 30;

$personArray1 = get_object_vars($person1);
$personArray2 = get_object_vars($person2);

print_r($personArray1);
print_r($personArray2);

輸出:

Array
(
    [name] => John
    [age] => 25
)

Array
(
    [name] => Jessica
    [age] => 30
)

可以看到,使用get_object_vars()函數後,我們將物件陣列成功地轉換成了普通陣列。

  1. 使用json_decode()函數

除了使用get_object_vars()函數,我們也可以使用json_decode()函數將物件陣列轉換為普通陣列。這個函數接收一個JSON字串參數,並傳回一個標準的PHP陣列。以下是使用json_decode()函數的範例程式碼:

class Person {
    public $name = "John";
    public $age = 25;
    private $password = "123456";

    public function showDetails() {
        echo $this->name . " is " . $this->age . " years old \n";
    }
}

$person1 = new Person();
$person2 = new Person();
$person2->name = "Jessica";
$person2->age = 30;

$json1 = json_encode($person1);
$json2 = json_encode($person2);

$personArray1 = json_decode($json1, true);
$personArray2 = json_decode($json2, true);

print_r($personArray1);
print_r($personArray2);

#輸出:

Array
(
    [name] => John
    [age] => 25
)

Array
(
    [name] => Jessica
    [age] => 30
)

使用json_decode()函數後,我們同樣成功地將物件陣列轉換成了普通陣列。

  1. 總結

將PHP物件陣列轉換為普通陣列非常簡單,只需要使用get_object_vars()函數或json_decode()函數即可完成。使用get_object_vars()函數可以直接將物件轉換為數組,而使用json_decode()函數則需要將物件先轉換為JSON格式的字串,再將字串轉換為陣列。無論是哪一種方法,都可以滿足我們處理資料時的需求。

以上是php物件數組怎麼轉為普通數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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