将嵌套的stdclassobject转换为双维数组

时间:2016-06-02 04:21:44

标签: php arrays json

如何将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维数组整体制作。

1 个答案:

答案 0 :(得分:0)

我猜你有类似的东西:

<?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));