首页 >后端开发 >PHP问题 >php对象数组怎么转为普通数组

php对象数组怎么转为普通数组

PHPz
PHPz原创
2023-04-23 09:12:21601浏览

在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