Alexis MUGWANEZA
Alexis MUGWANEZA

Reputation: 69

how to print brackets inside square bracket with array in php

I am echoing my array but it gives undesired output, i need my output to be having brackets which contain data inside the square brackets of an array . Please help me to fix this

Desired Output : {"error":false,"user":[{"id":1,"name":"Maurice Obraenne","mobile":"0785984505","sutdentId":"Muberangango Joseph"}]}

undesired output i get is the following without bracket inside square brace,and without identification names of records : {"error":false,"user":[1,"Maurice Obraenne","0785984505","Muberangango Joseph"]}

My code:

       $stmt->bind_param("i", $mobile);
    if ($stmt->execute()) {

   $result = $stmt->get_result();

    $usersArr = array();
    while ($user = $result->fetch_assoc()){

    $usersArr[] = $user['id'];
    $usersArr[] = $user['name'];
    $usersArr[] = $user['mobile'];
    $usersArr[] = $user['sutdentId'];
    $usersArr[] = $user['user_id'];
    $usersArr[] = $user['full_name'];
    $usersArr[] = $user['school'];
    $usersArr[] = $user['level'];
    $usersArr[] = $user['year'];
    $usersArr[] = base64_encode($user['photo']);   
    $usersArr[] = $user['busId'];
    $usersArr[] = $user['plate_no'];
    $usersArr[] = $user['DriverId'];
    $usersArr[] = $user['driverphone_number'];
    $usersArr[] = $user['driver_fullname'];

     }
   $stmt->close();
   // echo json_encode($usersArr);
    return $usersArr;

  } else {
return NULL;
  }

Upvotes: 0

Views: 826

Answers (3)

apokryfos
apokryfos

Reputation: 40653

You're just making your life harder:

  $stmt->bind_param("i", $mobile);
  if ($stmt->execute()) {    
       $result = $stmt->get_result();
       $usersArr = $result->fetch_all(MYSQLI_ASSOC);
       $stmt->close();
       $result->free(); //Because why not?
       return array_map(function ($user) {
             $user['photo'] = base64_encode($user['photo']);
             return $user;
      }, $usersArr;);
  } else {
       return NULL; 
  }

Upvotes: 0

usman ikram
usman ikram

Reputation: 445

You desired output shows that each user will be in an array, so you have to store each user in an array.

Use this code:

while ($user = $result->fetch_assoc()){

    $temp = array();
    $temp = $user;
    $temp['photo'] = base64_encode($user['photo']); 
    $usersArr[] = $temp;


}

then you can use this array to store users data at user key of an array

like this:

$final['error'] = '';
$final['user'] = $usersArr;

Upvotes: 0

Himanshu Upadhyay
Himanshu Upadhyay

Reputation: 6565

You can do that like this:

while ($user = $result->fetch_assoc()){

$usersArr['id'] = $user['id'];
$usersArr['name'] = $user['name'];
$usersArr['mobile'] = $user['mobile'];
$usersArr['studentId'] = $user['sutdentId'];
$usersArr['user_id'] = $user['user_id'];
$usersArr['full_name'] = $user['full_name'];
$usersArr['school'] = $user['school'];
$usersArr['level'] = $user['level'];
$usersArr['year'] = $user['year'];
$usersArr['photo'] = base64_encode($user['photo']);   
$usersArr['busId'] = $user['busId'];
$usersArr['plate_no'] = $user['plate_no'];
$usersArr['DriverId'] = $user['DriverId'];
$usersArr['driverphone_number'] = $user['driverphone_number'];
$usersArr['driver_fullname'] = $user['driver_fullname'];

}

return json_encode($usersArr);

Upvotes: 1

Related Questions