如何在PHP中进行对象与数组的转换

PHPz
Lepaskan: 2023-04-18 13:54:00
asal
462 orang telah melayarinya

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);
Salin selepas log masuk

输出结果:

Array ( [make] => Toyota [model] => Camry [color] => black )
Salin selepas log masuk

注意: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
Salin selepas log masuk

输出结果:

Toyota
Salin selepas log masuk
  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);
Salin selepas log masuk

输出结果:

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 ) )
Salin selepas log masuk
  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);
Salin selepas log masuk

输出结果:

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 ) )
Salin selepas log masuk
  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);
Salin selepas log masuk

输出结果:

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 ) ) )
Salin selepas log masuk

在本文中,我们介绍了在PHP中,如何实现对象与数组的互相转换,以及对象数组如何转换为多维数组对象。这些转换在PHP开发中是非常常见的操作,熟练掌握这些操作将会为我们的开发工作带来很大的方便。

Atas ialah kandungan terperinci 如何在PHP中进行对象与数组的转换. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!