php怎么把对象数组变成普通数组

fiy 其他 119

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    要将对象数组转换为普通数组,可以使用PHP的类型转换函数或者循环遍历的方法。

    方法一:使用类型转换函数
    1、使用 (array) 或者 get_object_vars() 函数将对象转换为数组。
    2、如果对象数组中的对象是嵌套的,需要递归地将嵌套的对象也转换为数组。

    示例代码:

    “`php
    // 示例对象数组
    $objArray = [
    (object) [‘name’ => ‘Alice’, ‘age’ => 18],
    (object) [‘name’ => ‘Bob’, ‘age’ => 20],
    (object) [‘name’ => ‘Charlie’, ‘age’ => 22]
    ];

    // 转换为普通数组
    $array = [];
    foreach ($objArray as $obj) {
    $array[] = (array) $obj;
    }

    // 输出转换后的普通数组
    print_r($array);
    “`

    方法二:循环遍历对象数组
    1、使用循环遍历对象数组,依次获取每个对象的属性值,并将属性值存入新的数组中。

    示例代码:

    “`php
    // 示例对象数组
    $objArray = [
    (object) [‘name’ => ‘Alice’, ‘age’ => 18],
    (object) [‘name’ => ‘Bob’, ‘age’ => 20],
    (object) [‘name’ => ‘Charlie’, ‘age’ => 22]
    ];

    // 转换为普通数组
    $array = [];
    foreach ($objArray as $obj) {
    $item = [];
    foreach ($obj as $key => $value) {
    $item[$key] = $value;
    }
    $array[] = $item;
    }

    // 输出转换后的普通数组
    print_r($array);
    “`

    以上两种方法都可以将对象数组转换为普通数组。选择哪种方法取决于个人的习惯和需求。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在PHP中,可以使用`get_object_vars()`方法将对象数组转换为普通数组。另外,还可以使用`json_decode()`和`json_encode()`方法将对象数组转换为JSON格式,然后再将JSON字符串转换为普通数组。

    以下是具体的方法和代码示例:

    1. 使用`get_object_vars()`方法将对象数组转换为普通数组:
    “`php
    ‘John’, ‘age’ => 25),
    (object) array(‘name’ => ‘Jane’, ‘age’ => 30),
    (object) array(‘name’ => ‘Bob’, ‘age’ => 35)
    );

    // 使用get_object_vars()方法获取对象数组的属性值,并将其转换为普通数组
    $array = array_map(‘get_object_vars’, $objectArray);

    // 输出转换后的普通数组
    print_r($array);
    ?>
    “`

    2. 使用`json_decode()`和`json_encode()`方法将对象数组转换为普通数组:
    “`php
    ‘John’, ‘age’ => 25),
    (object) array(‘name’ => ‘Jane’, ‘age’ => 30),
    (object) array(‘name’ => ‘Bob’, ‘age’ => 35)
    );

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

    // 将JSON字符串转换为普通数组
    $array = json_decode($jsonString, true);

    // 输出转换后的普通数组
    print_r($array);
    ?>
    “`

    3. 使用foreach循环将对象数组转换为普通数组:
    “`php
    ‘John’, ‘age’ => 25),
    (object) array(‘name’ => ‘Jane’, ‘age’ => 30),
    (object) array(‘name’ => ‘Bob’, ‘age’ => 35)
    );

    // 定义空数组,用于存储普通数组
    $array = array();

    // 使用foreach循环遍历对象数组,将每个对象转换为普通数组并添加到结果数组中
    foreach ($objectArray as $obj) {
    $array[] = (array) $obj;
    }

    // 输出转换后的普通数组
    print_r($array);
    ?>
    “`

    4. 使用array_map()函数将对象数组转换为普通数组:
    “`php
    ‘John’, ‘age’ => 25),
    (object) array(‘name’ => ‘Jane’, ‘age’ => 30),
    (object) array(‘name’ => ‘Bob’, ‘age’ => 35)
    );

    // 使用匿名函数将对象转换为普通数组
    $callback = function($value) {
    return (array) $value;
    };

    // 使用array_map()函数将对象数组转换为普通数组
    $array = array_map($callback, $objectArray);

    // 输出转换后的普通数组
    print_r($array);
    ?>
    “`

    5. 使用序列化和反序列化将对象数组转换为普通数组:
    “`php
    ‘John’, ‘age’ => 25),
    (object) array(‘name’ => ‘Jane’, ‘age’ => 30),
    (object) array(‘name’ => ‘Bob’, ‘age’ => 35)
    );

    // 将对象数组序列化为字符串
    $serialized = serialize($objectArray);

    // 将序列化后的字符串反序列化为普通数组
    $array = unserialize($serialized);

    // 输出转换后的普通数组
    print_r($array);
    ?>
    “`

    通过以上方法,可以将对象数组转换为普通数组,使得可以更方便地对其进行处理和操作。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在PHP中,对象数组是指包含了一组对象的数组。如果想将对象数组转换为普通数组,可以使用以下几种方法。

    1. 使用循环遍历对象数组,将每个对象转换为关联数组并存储到新的数组中。
    “`php
    $objectArray = [
    new stdClass(),
    new stdClass(),
    ];

    $newArray = [];
    foreach($objectArray as $object) {
    $newArray[] = (array)$object;
    }
    “`

    2. 使用array_map函数,该函数可以将给定的回调函数应用到数组的每个元素上,并返回一个新的数组。
    “`php
    $objectArray = [
    new stdClass(),
    new stdClass(),
    ];

    $newArray = array_map(function($object) {
    return (array)$object;
    }, $objectArray);
    “`

    3. 使用json_encode和json_decode函数,将对象数组转换为JSON字符串,然后再将JSON字符串转换为普通数组。
    “`php
    $objectArray = [
    new stdClass(),
    new stdClass(),
    ];

    $jsonString = json_encode($objectArray);
    $newArray = json_decode($jsonString, true);
    “`

    4. 使用序列化和反序列化操作符,将对象数组序列化为字符串,然后反序列化为普通数组。
    “`php
    $objectArray = [
    new stdClass(),
    new stdClass(),
    ];

    $string = serialize($objectArray);
    $newArray = unserialize($string);
    “`

    需要注意的是,以上方法中的`(array)$object`将对象转换为数组只适用于公开的属性(public属性)。私有属性和受保护属性无法访问。

    另外,如果对象中包含其他对象的引用,转换后的普通数组中会保留这些引用。如果希望将对象数组及其关联的对象全部转换为普通数组,需要递归遍历对象中的属性,并对其进行转换。

    最后,无论哪种方法,都需要注意转换过程中可能导致数据丢失或改变原始结构。因此,在进行对象数组和普通数组之间的转换时,需要进行充分的测试和验证。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部