2017-09-17 10 views
0

私は1つの[]からすべての名前を呼び出すと、配列はforeach PHPから動作しませんか?または私は何をしたいのですか?私はforeach( "id"、 "NOT LIKE"、$ id)を使っていましたが、foreachからecho形式を取るときは、一つの名前しか表示しません。 ここに私のPHPコードはあります:JsonArrayはすべての名前を取得します -

アウト
if ($getusers !== FALSE) { 

    $json["error_two"] = FALSE; 

    foreach($db->get("users",array('id', 'NOT LIKE', $id))->results() as $u){ 

     $user = new user($u->id); 

     $json = array(
      'error_two' => FALSE, 
      'getusers' => $getusers, 
      'call_two' => [ 
       array(
        'user_id' => $user->data()->id, 
        'fname' => $user->data()->fname, 
        'lname' => $user->data()->lname, 
        'username' => $user->data()->username, 
        'gender' => $user->data()->gender, 
       ), 
      ] 
     ); 
     echo json_encode($json); 
    } 
} 

{"error_two":false,"getusers":true,"call_two":[{"user_id":"1","fname":"Ned","lname":"Stark","username":"","gender":"Male"}]}{"error_two":false,"getusers":true,"call_two":[{"user_id":"3","fname":"Danyal","lname":"Join","username":"","gender":"Male"}]}{"error_two":false,"getusers":true,"call_two":[{"user_id":"4","fname":"dnianas","lname":".co","username":"","gender":"Male"}]}{"error_two":false,"getusers":true,"call_two":[{"user_id":"5","fname":"Mr.","lname":"Robot","username":"","gender":"Male"}]} 

まさに私が欲しい:

{ 
"call_two" : [ 
     { 
      "user_id" = "1", 
      "fname" = "Ned", 
      "lname" = "Stark", 
      "username" = "", 
      "gender" = "Male" 
     }, 
     { 
      "user_id" = "2", 
      "fname" = "Jon", 
      "lname" = "Snow", 
      "username" = "", 
      "gender" = "Male" 
     }, 
     { 
      "user_id" = "3", 
      "fname" = "Danyal", 
      "lname" = "Join", 
      "username" = "", 
      "gender" = "Male" 
     } 
    ] 
} 

答えて

0

...私は( "ID"、 "LIKE NOT"、$のID)のforeachを使用しますが、ときforeachからecho形式を取り出して表示する電子名...

あなたがforeachループの各反復で過剰書き込み$jsonあるためです。また、それはと書かれた無効なJSON文字列ではありません。です。有効な(とやや期待されるJSON文字列)を達成するために、あなたのifブロックは次のようにする必要があります:

if ($getusers !== false) { 
    $json = array('error_two' => false, 'getusers' => $getusers); 
    foreach($db->get("users",array('id', 'NOT LIKE', $id))->results() as $u){ 
     $user = new user($u->id); 
     $json['call_two'][] = array(
           'user_id' => $user->data()->id, 
           'fname' => $user->data()->fname, 
           'lname' => $user->data()->lname, 
           'username' => $user->data()->username, 
           'gender' => $user->data()->gender, 
          ); 
    } 
    echo json_encode($json); 
} 
+0

に回出てくる追加していることがあります。どうもありがとう –

0

あなたは'call_two'を上書きする代わりに、その配列

if ($getusers !== FALSE) { 

    $json = array(); 
    $json["error_two"] = FALSE; 
    $json['getusers'] = $getusers; 

    foreach($db->get("users",array('id', 'NOT LIKE', $id))->results() as $u){ 
     $user = new user($u->id); 

     $call_two[] = array(
          'user_id' => $user->data()->id, 
          'fname' => $user->data()->fname, 
          'lname' => $user->data()->lname, 
          'username' => $user->data()->username, 
          'gender' => $user->data()->gender, 
          ); 
     ); 
    } 
    $json['call_two'] = $call_two; 

} 
echo json_encode($json); 
関連する問題