php是一种面向对象的编程语言,因此,对象在php中是非常常见的,而对象与数组之间的转换也是经常需要的操作。在本篇文章中,我们将介绍在php中对象与数组的转换,以及如何将对象数组转换为多维数组对象。
使用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)属性都不能被转换。
立即学习“PHP免费学习笔记(深入)”;
使用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
在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
)
)在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
)
)在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怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号