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

2022-08-30 06:52:04

我从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

)

任何想法我怎么能这样做?


答案 1

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

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

或者,如果您愿意,也可以手动遍历对象:

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

答案 2

很简单,首先将你的对象转换为json对象,这会将你的对象的字符串返回到JSON代表中。

获取该结果并使用额外的参数 true 进行解码,在该参数中,它将转换为关联数组

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