在PHP中将stdClass对象转换为数组?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (121)

我从postmeta获取post_id为:

$post_id = $wpdb->get_results("SELECT post_id FROM $wpdb->postmeta WHERE (meta_key = 'mfn-post-link1' AND meta_value = '". $from ."')");

当我print_r($post_id); 我有这样的数组:

Array
(
    [0] => stdClass Object
        (
            [post_id] => 140
        )

    [1] => stdClass Object
        (
            [post_id] => 141
        )

    [2] => stdClass Object
        (
            [post_id] => 142
        )

)

如何遍历,我怎么能这样得到数组

Array
(
    [0]  => 140


    [1] => 141


    [2] => 142

)
提问于
用户回答回答于

最简单的方法是对对象进行JSON编码,然后将其解码回数组:

$array = json_decode(json_encode($object), True);

或者,也可以手动遍历对象:

foreach ($object as $value) 
    $array[] = $value->post_id;

演示

用户回答回答于

非常简单,首先将对象转换为json对象,这将将对象的字符串返回为JSON代表。

接受这个结果并使用一个额外的参数true进行解码,其中它将转换为关联数组。

$array = json_decode(json_encode($oObject),true);

扫码关注云+社区

领取腾讯云代金券