【问题标题】:Convert stdClass object with multiple entries/value to array in PHP [duplicate]将具有多个条目/值的stdClass对象转换为PHP中的数组[重复]
【发布时间】:2021-02-19 11:46:39
【问题描述】:

我从 postmeta 获取 $pmpro_levels 为:

当我尝试 print_r($pmpro_levels);我有这样的数组:



$pmpro_levels=Array
(
    [2] => stdClass Object
        (
            [id] => 2
            [name] => PREMIUM
            [description] => <h4 style="text-align: center"><strong>3 Mois</strong></h4>
<p style="text-align: center">7€ /mois</p>
<p style="text-align: center"><span style="color: #000000">soit 0,70€ par jour</span></p>
             
        )

    [3] => stdClass Object
        (
            [id] => 3
            [name] => GOLD
            [description] => <h4 style="text-align: center"><strong>6 Mois</strong></h4>
<p style="text-align: center">6€ /mois</p>
<p style="text-align: center"><span style="color: #000000">soit 0,20€ par jour</span></p>
            
        )

    [5] => stdClass Object
        (
            [id] => 5
            [name] => MINI
            [description] => <h4 style="text-align: center"><strong>1 Mois</strong></h4>
<p style="text-align: center">10€ /mois</p>
<p style="text-align: center"><span style="color: #000000">soit 0,33€ par jour</span></p>
            ));


我不知道如何遍历它,我怎么能得到这样的数组




Array
(
    [2]  => string data not object


    [3] => string data  not object


    [5] => string data  not object

)


知道我该怎么做吗?我想要一个没有对象的数组。我们必须使用杰森吗?我是 PHP 新手。

【问题讨论】:

  • 像 (array)$obj 一样将对象转换为数组
  • 你要什么字符串数据?有id、name和description。
  • 你是放弃还是什么?
  • 是的,我通过另一种方式发现了这个问题。非常感谢

标签: php object stdclass


【解决方案1】:

你可以使用类似的东西:

$newArray = [];
foreach($pmpro_levels as $level) {
    $newArray[] = get_object_vars($level);
}

或使用array_map:

$newArray = array_map(function ($level) {return get_object_vars($level);}, $pmpro_levels);

如果要将数组转换为 stdClass 对象,可以将其类型转换为 object,如下所示:

$myArray = [ 'title' => 'My title', 'description' => 'Some description' ];
$myObject = (object)$myArray;

【讨论】:

    猜你喜欢
    • 2011-11-08
    • 2013-10-29
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    • 2016-12-25
    • 1970-01-01
    • 2016-03-29
    相关资源
    最近更新 更多