2012-05-06 4 views
1

誰かが私になぜ最初のものが動作していて、2番目のものが動作していないのか説明してもらえますか?結果は第2の例では単に「1」である。両方のコードサンプルについてJSON - PHPのpush_arrayを使用

$c = 0; 
    $list = array(); 
    foreach ($places as $place) { 
     $arr = array(); 
     $arr[0] = get_object_vars($place); 
     $list[$c] = $arr; 
     $c++; 
    } 
    echo json_encode(array("status" => "true", "list" => $list)); 
$list = array(); 
    foreach ($places as $place) { 
     array_push($list, get_object_vars($place)); 
    } 
    echo json_encode(array("status" => "true", "list" => $list)); 

サンプルデータ:アレイにキー値ペアを追加する最初のケースで

$places = array(); 

$place = new StdClass; 
$place->name = 'first'; 
$place->location = array('x' => 0.0, 'y' => 0.0); 
$places[] = $place; 

$place = new StdClass; 
$place->name = 'Greenwich Observatory'; 
$place->location = array('x' => 51.4778, 'y' => 0.0017); 
$place->elevation = '65.79m'; 
$places[] = $place; 
+0

どうすればいいですか?** $ list [] = get_object_vars($ place); **? –

+0

2.では ')'がありません。それ以外は、うまくいくはずです。 – kapa

+0

@BartoszGrzybowskiまあ、それは基本的に同じです。それはなぜ違いがあるのでしょうか? – kapa

答えて

1

2番目のケースでは値だけです。実際に値を加算したほうがいいかもしれませんが、多分

foreach ($places as $place) { 
    array_push($list, array(0 => get_object_vars($place)); 
} 

は良くなりますか?

+0

これは動作します: $ list [] = array(get_object_vars($ place)); – Torben

+0

複数の場所でも? –

関連する問題