2011-01-16 20 views
0

配列の配列をオブジェクトの配列に変換するにはどうすればよいですか?連想配列をオブジェクトの配列に変換する

$a = blah // an array of arrays; 

$b= (object) array($a); 

print_r($b); //prints an object of an array of arrays 
+1

注「連想配列」は、「アレイのアレイ」を意味するものではないこと:各項目はオブジェクトに変換し、オブジェクトの配列に多次元配列を変換する

。 –

+0

既にキー値の場合は、オブジェクト自体を宣言する必要があるのはなぜですか?それは十分ではないのですか? $ var [$ n] ['key']を使って既にそこにあるものを参照できます。 – Hoatzin

+0

あなたが話しているのは、連想配列ではなく、多次元配列です。連想配列は、マップ/辞書のようなものです。 – alexn

答えて

3

連想配列は配列の配列ではありません。キーが文字列である配列です。配列の配列は、多次元配列です。

foreach(array_keys($a) as $key) 
{ 
    $a[$key] = (object)$a[key]; 
} 
0

が、これは1次元配列のためである

$array = associative array 

$object = new StdClass(); 

foreach ($array as $key => $value){ 
    $object -> $key = $value; 
} 

print_r ($object); 

を試してみてください。多次元の場合は、それを再帰関数に変更する必要があります。