插件窝 干货文章 php对象数组转数组

php对象数组转数组

object 数组 array 方法 88    来源:    2025-03-19

在PHP中,如果你有一个对象数组(即一个包含多个对象的数组),并且你想将其转换为一个普通的数组(即一个包含多个关联数组的数组),你可以使用json_decodejson_encode函数,或者使用get_object_vars函数来手动转换。

以下是几种常见的方法:

方法1:使用json_encodejson_decode

$objectsArray = [
    (object)['name' => 'Alice', 'age' => 25],
    (object)['name' => 'Bob', 'age' => 30]
];

// 将对象数组转换为JSON字符串
$jsonString = json_encode($objectsArray);

// 将JSON字符串解码为关联数组
$array = json_decode($jsonString, true);

print_r($array);

方法2:使用get_object_vars手动转换

$objectsArray = [
    (object)['name' => 'Alice', 'age' => 25],
    (object)['name' => 'Bob', 'age' => 30]
];

$array = array_map(function($object) {
    return get_object_vars($object);
}, $objectsArray);

print_r($array);

方法3:使用array_mapget_object_vars结合

$objectsArray = [
    (object)['name' => 'Alice', 'age' => 25],
    (object)['name' => 'Bob', 'age' => 30]
];

$array = array_map('get_object_vars', $objectsArray);

print_r($array);

输出结果

无论使用哪种方法,输出结果都会是:

Array
(
    [0] => Array
        (
            [name] => Alice
            [age] => 25
        )

    [1] => Array
        (
            [name] => Bob
            [age] => 30
        )

)

总结

  • 方法1 使用json_encodejson_decode是最简单的方式,但可能会稍微慢一些,因为它涉及到JSON的编码和解码。
  • 方法2方法3 使用get_object_vars手动转换,通常更快,但需要更多的代码。

根据你的需求和性能要求,你可以选择适合的方法。