オブジェクトの配列ではなく、オブジェクトのオブジェクトを作成するのに苦労しています(これは機能しますが、後でjsonで使用するのは簡単ではありません)
テストにはhttp://writecodeonline.com/php/を使用してください
$a = Array();
$obj = new stdClass();
$obj->key = "name";
$obj->value = "durant";
array_push($a, $obj);
$obj = new stdClass();
$obj->key = "friend";
$obj->value = "johns";
array_push($a, $obj);
$preds = Array();
foreach( $a as $v ){
$item = Array(); // new stdClass();
$item[$v->key] = $v->value; // ^ doesn't work
array_push($preds, $item);
}
$obj = new stdClass();
$obj->key = "data";
$obj->value = $preds;
array_push($a, $obj);
//var_dump($a);
echo(json_encode($a[2]->value)); // returns: [{"name":"durant"},{"friend":"johns"}]
$arr['name']または$arr['friend']を簡単に実行できるようにしたいと思います
編集:そのように動作します(thx Dani):私はPhpに完全に慣れていないので、誰かが説明できれば(JSON_FORCE_OBJECT optsはそれを解決しませんでした)
$a = Array();
$obj = new stdClass();
$obj->key = "name";
$obj->value = "durant";
array_push($a, $obj);
$obj = new stdClass();
$obj->key = "friend";
$obj->value = "johns";
array_push($a, $obj);
$preds = new stdClass();
foreach( $a as $v ){
$k = $v->key;
$preds->$k = $v->value;
}
$obj = new stdClass();
$obj->key = "data";
$obj->value = $preds;
array_push($a, $obj);
echo(json_encode($a[2]->value)); // returns: {"name":"durant", "friend":"johns"}