オブジェクト配列を連想配列に変える
$object = new Example();
var_dump($object->DATAload);
こんな感じでとってきたデータをdumpしたとき、以下のような状態でした。
えー。。。
オブジェクト配列ってんですか?
クラスファイルを見ないとなんとも言えないんですが、とりあえずフツーの連想配列にしたい。
という時には、これを。
全部一括で変換してくれます。
いろいろ探してたら、海外のサイトでこんなコードを見つけた。
こいつの場合には、
みたいな感じで使います。
var_dump($object->DATAload);
こんな感じでとってきたデータをdumpしたとき、以下のような状態でした。
array(2) {
[0]=>
object(stdClass)#1 (4) {
["id"]=>
string(1) "1"
["name"]=>
string(15) "おにぎり"
["price"]=>
string(3) "110"
["comment"]=>
string(31) "おにぎり/■\ワショーイ"
}
[1]=>
object(stdClass)#2 (4) {
["id"]=>
string(1) "2"
["name"]=>
string(18) "お茶"
["price"]=>
string(3) "120"
["comment"]=>
string(43) "(・∀・)つ目 オチャノメ!"
}
えー。。。
オブジェクト配列ってんですか?
クラスファイルを見ないとなんとも言えないんですが、とりあえずフツーの連想配列にしたい。
という時には、これを。
function obj2arr($obj) {
if ( !is_object($obj) ) return $obj;
$arr = (array)$obj;
foreach($arr as $k => &$v) {
if(is_object($v)) {
$v = obj2arr($v);
}
}
return $arr;
}
var_dump( obj2arr( $object->DATAload ));
-------結果------
array(2) {
[0]=>
array(4) {
["id"]=>
string(1) "1"
["name"]=>
string(15) "おにぎり"
["price"]=>
string(3) "110"
["comment"]=>
string(31) "おにぎり/■\ワショーイ"
}
[1]=>
array(4) {
["id"]=>
string(1) "2"
["name"]=>
string(18) "お茶"
["price"]=>
string(3) "120"
["comment"]=>
string(43) "(・∀・)つ目 オチャノメ!"
}
全部一括で変換してくれます。
いろいろ探してたら、海外のサイトでこんなコードを見つけた。
function object2array($object) {
if (is_object($object)) {
foreach ($object as $key => $value) {
$array[$key] = $value;
}
}
else {
$array = $object;
}
return $array;
}
こいつの場合には、
var_dump( object2array( $object->DATAload[0] ));
----------------------
array(4) {
["id"]=>
string(1) "1"
["name"]=>
string(15) "おにぎり"
["price"]=>
string(3) "110"
["comment"]=>
string(31) "おにぎり/■\ワショーイ"
}
みたいな感じで使います。