【问题标题】:Conversion of nested stdclassobject to a double dimensional array将嵌套的 stdclass 对象转换为二维数组
【发布时间】:2016-10-01 15:29:30
【问题描述】:

如何将double std 类对象,即(stdclass 对象中再次包含一个 stdclass 对象)转换为数组?

我有用户类型;铸造它只转换了单个对象,但里面的对象保持不变。

数据:

Array ( [activities] => Array ( ) [goals] => stdClass Object (
        [activeMinutes] => 30 [caloriesOut] => 3355 
        [distance] => 8.05 [steps] =>  10000 ) 

[summary] => stdClass Object ( [activeScore] => -1 [activityCalories] 
          => 1472 [caloriesBMR] => 2074 [caloriesOut] => 3308  

[distances] => Array ( [0] => stdClass Object ( [activity] => total [distance] => 8.46 ) [1] => stdClass 

Object ( [activity] => tracker [distance] => 8.46 ) 

[2] => stdClass Object ( 
[activity] => loggedActivities [distance] => 0 ) 

[3] => stdClass Object ( 
[activity] => veryActive [distance] => 2.35 ) 

[4] => stdClass Object ( 
[activity] => moderatelyActive [distance] => 1.63 ) 

[5] => stdClass Object ( 
[activity] => lightlyActive [distance] => 4.48 ) 

[6] => stdClass Object ( [activity] => sedentaryActive [distance] => 0 ) ) 

[fairlyActiveMinutes] => 32 
[lightlyActiveMinutes] => 194 [marginalCalories] => 867 [sedentaryMinutes] => 
1125 [steps] => 11446 [veryActiveMinutes] => 31 ) )

此数据在数组中有stdclass 对象,如何将其也转换为数组并使其整体成为double 维数组。

【问题讨论】:

  • 请修正您的格式
  • 试试 json_decode(json_encode($yourArray),1);
  • 如何修复我的格式??????实际上,我想使用数组在 foreach 中打印数据,但也有类对象,因为当我执行类型转换时它们没有被转换为数组。我的问题是如何将嵌套对象结构转换为其等效数组(任何不.of 尺寸)。

标签: php arrays json


【解决方案1】:

我猜你有类似的东西:

<?php
$a = [
    'foo' => (object)[
        'id' => 1,
        'name' => 'foo',
    ],
    'bar' => (object)[
        'id' => 2,
        'name' => 'bar',
        'nested' => (object)['status' => 'ok'],
    ],
];
var_export($a);

结果:

array (
  'foo' => 
  stdClass::__set_state(array(
     'id' => 1,
     'name' => 'foo',
  )),
  'bar' => 
  stdClass::__set_state(array(
     'id' => 2,
     'name' => 'bar',
     'nested' => 
    stdClass::__set_state(array(
       'status' => 'ok',
    )),
  )),
)

你尝试收到类似的东西:

array (
  'foo' => 
  array (
    'id' => 1,
    'name' => 'foo',
  ),
  'bar' => 
  array (
    'id' => 2,
    'name' => 'bar',
    'nested' => 
    array (
      'status' => 'ok',
    ),
  ),
)

所以最好的方法 - 就像提到的@MineshPatel 使用下一个代码:

var_export(json_decode(json_encode($a), true));

【讨论】:

  • 非常感谢它的工作......但是当我打印这个数组时,它显示一个数组不能转换为字符串的通知(这是因为我在主数组中有一个数组,我正在打印。)如何解决这个问题???
猜你喜欢
  • 2020-01-08
  • 1970-01-01
  • 2022-01-14
  • 1970-01-01
  • 2015-12-22
  • 2014-12-30
  • 1970-01-01
  • 2020-11-10
  • 2015-10-22
相关资源
最近更新 更多