首页 > 后端开发 > PHP问题 > 如何在PHP中进行对象与数组的转换

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

PHPz
发布: 2023-04-18 13:54:00
原创
567 人浏览过

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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板