PHP中把对象数组转换成普通数组的方法

要把对象数组转换成普通数组,可以使用两种方法:强制类型转换和递归函数。

要把对象数组转换成普通数组,可以使用两种方法:强制类型转换和递归函数。

1. 强制类型转换

使用强制类型转换可以将对象数组转换为普通数组,示例代码如下:

$obj = new stdClass();
$obj->name = '小明';
$objArray = [$obj, $obj, $obj];
echo '<pre>';
print_r((array) $objArray);

输出结果如下:

Array
(
    [0] => stdClass Object
        (
            [name] => 小明
        )

    [1] => stdClass Object
        (
            [name] => 小明
        )

    [2] => stdClass Object
        (
            [name] => 小明
        )

)

在强制类型转换时,对象数组的每个元素都会被转换为其内部属性的键值对。

2. 递归函数

使用递归函数可以将对象数组转换为普通数组,示例代码如下:

function objectToArray($objArray) {
    $result = array();
    foreach ($objArray as $key => $value) {
        if (is_object($value)) {
            $result[$key] = objectToArray((array) $value);
        } elseif (is_array($value)) {
            $result[$key] = objectToArray($value);
        } else {
            $result[$key] = $value;
        }
    }
    return $result;
}

$obj = new stdClass();
$obj->name = '小明';
$objArray = [$obj, $obj, $obj];

echo '<pre>';
print_r(objectToArray($objArray));

输出结果如下:

Array
(
    [0] => Array
        (
            [name] => 小明
        )

    [1] => Array
        (
            [name] => 小明
        )

    [2] => Array
        (
            [name] => 小明
        )

)

此方法中,我们定义了一个 objectToArray 函数,在循环对象数组时,判断元素的类型,若为对象则递归调用自身进行转换,若为数组则继续循环,否则直接赋值给结果数组。

以上是将对象数组转换为普通数组的两种方法。

本文标题为:PHP中把对象数组转换成普通数组的方法

基础教程推荐