首頁 > 後端開發 > PHP問題 > 如何在PHP中進行物件與陣列的轉換

如何在PHP中進行物件與陣列的轉換

PHPz
發布: 2023-04-18 13:54:00
原創
565 人瀏覽過

PHP是一種物件導向的程式語言,因此,物件在PHP中是非常常見的,而物件與陣列之間的轉換也是經常需要的操作。在本篇文章中,我們將介紹在PHP中物件與陣列的轉換,以及如何將物件陣列轉換為多維數組物件。

  1. 物件轉數組

使用PHP內建的函數將物件轉換為數組,可以使用 get_object_vars(),該函數將物件屬性轉換為關聯數組。

例如:

class car {
   public $make = 'Toyota';
   public $model = 'Camry';
   public $color = 'black';
   protected $year = 2018;
}

$obj = new car;
$arr = get_object_vars($obj);
print_r($arr);
登入後複製

輸出結果:

Array
(
    [make] => Toyota
    [model] => Camry
    [color] => black
)
登入後複製

注意:get_object_vars()函數只能轉換公有屬性(public)。受保護的(protected)和私有的(private)屬性都不能被轉換。

  1. 陣列轉物件

使用PHP內建函數將陣列轉換為對象,可以使用 (object),同時,也可以使用強制型別轉換。

例如:

$arr = array('make' => 'Toyota', 'model' => 'Camry', 'color' => 'black');
$obj = (object) $arr;

// Alternatively, you can use type casting
// $obj = (object) array('make' => 'Toyota', 'model' => 'Camry', 'color' => 'black');

echo $obj->make; // Toyota
登入後複製

輸出結果:

Toyota
登入後複製
  1. 物件陣列轉數組物件

在PHP中,物件陣列是由物件組成的數組。如果要將物件陣列轉換為陣列對象,我們可以使用PHP預先定義的 array_map()函數來實作。

例如:

class car {
   public $make = 'Toyota';
   public $model = 'Camry';
   public $color = 'black';
   protected $year = 2018;
}

$obj1 = new car;
$obj2 = new car;
$obj3 = new car;
$car_array = array($obj1, $obj2, $obj3);

// using array_map() to transform all objects into arrays:
$arr_array = array_map(function($object) {
    return get_object_vars($object);
}, $car_array);

// displaying the resulting array
print_r($arr_array);
登入後複製

輸出結果:

Array
(
    [0] => Array
        (
            [make] => Toyota
            [model] => Camry
            [color] => black
        )

    [1] => Array
        (
            [make] => Toyota
            [model] => Camry
            [color] => black
        )

    [2] => Array
        (
            [make] => Toyota
            [model] => Camry
            [color] => black
        )

)
登入後複製
  1. 陣列物件轉物件陣列

在PHP中,陣列物件是由數組組成的物件。如果要將陣列物件轉換為物件數組,我們可以使用PHP預先定義的 array_map()函數和強制類型轉換來實作。

例如:

class car {
   public $make = 'Toyota';
   public $model = 'Camry';
   public $color = 'black';
   protected $year = 2018;
}

$arr1 = array('make' => 'Toyota', 'model' => 'Camry', 'color' => 'black');
$arr2 = array('make' => 'Honda', 'model' => 'Civic', 'color' => 'white');
$arr3 = array('make' => 'Chevrolet', 'model' => 'Malibu', 'color' => 'silver');
$car_array = array($arr1, $arr2, $arr3);

$obj_array = array_map(function($array) {
    return (object) $array;
}, $car_array);

// displaying the resulting array
print_r($obj_array);
登入後複製

輸出結果:

Array
(
    [0] => stdClass Object
        (
            [make] => Toyota
            [model] => Camry
            [color] => black
        )

    [1] => stdClass Object
        (
            [make] => Honda
            [model] => Civic
            [color] => white
        )

    [2] => stdClass Object
        (
            [make] => Chevrolet
            [model] => Malibu
            [color] => silver
        )

)
登入後複製
  1. #物件陣列轉多維數組物件

在PHP中,多維數組對象是指包含多個數組物件的物件數組。如果要將物件陣列轉換為多維數組對象,我們可以使用PHP預先定義的 array_map()函數和關聯數組來實現。

例如:

class car {
   public $make = 'Toyota';
   public $model = 'Camry';
   public $color = 'black';
   protected $year = 2018;
}

$obj1 = new car;
$obj2 = new car;
$obj3 = new car;
$car_array = array($obj1, $obj2, $obj3);

$arr_array = array_map(function($object) {
    return get_object_vars($object);
}, $car_array);

// combining the resulting arrays into a multidimensional array
$final_array = array('cars' => $arr_array);

// displaying the final multidimensional array
print_r($final_array);
登入後複製

輸出結果:

Array
(
    [cars] => Array
        (
            [0] => Array
                (
                    [make] => Toyota
                    [model] => Camry
                    [color] => black
                )

            [1] => Array
                (
                    [make] => Toyota
                    [model] => Camry
                    [color] => black
                )

            [2] => Array
                (
                    [make] => Toyota
                    [model] => Camry
                    [color] => black
                )

        )

)
登入後複製

在本文中,我們介紹了在PHP中,如何實現物件與陣列的互通,以及物件陣列如何轉換為多維數組物件。這些轉換在PHP開發中是非常常見的操作,熟練這些操作將會為我們的開發工作帶來很大的便利。

以上是如何在PHP中進行物件與陣列的轉換的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板