2016-06-02 15 views
2

double stdクラスオブジェクト(つまり、stdclassオブジェクトがstdclassオブジェクトを持つstdclassオブジェクト)を配列に変換する方法はありますか?ネストされたstdclassobjectを2次元配列に変換する

私はユーザータイプを持っています。キャスティングは単一のオブジェクトを変換したに過ぎませんが、内部のオブジェクトは同じままです。

データ:

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

このデータは、アレイにも、それを変換しdouble次元アレイとして全体的に、それを作成する方法アレイ内のstdclass目的としています。

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

結果:

+1

フォーマットを修正してください – Will

+0

json_decode(json_encode($ yourArray)、1);を試してください。 –

+0

私の書式設定を修正するには?????実際には、配列を使用してforeachのデータを印刷したいと思ったが、クラスキャストは、配列キャストを行うときに配列に変換されていないということもある。私の質問は、次元の)。 – roopteja

答えて

0

は、私はあなたのようなものがあると思い

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)); 
+0

ありがとうalotは働いています.......しかし、私はこの配列を印刷すると、配列が文字列に変換できないという通知を表示しています(これは、私が印刷しているメイン配列の中に配列があるためです)。この??? – roopteja

関連する問題