Associative array to Json

Nick picture Nick · Jun 5, 2012 · Viewed 42.3k times · Source

I would like to be able to generate a json output in the following format:

{"a":{"ax":1,"abx":2},"b":{"bax":1,"bbx":2},"c":3,"d":4,"e":5}

Although I have found that the respective code is this:

$arr = array('a' => array('ax' => 1, 'abx' => 2), 'b' => array('bax' => 1, 'bbx' => 2), 'c' => 3, 'd' => 4, 'e' => 5);

, I'm struggling to generate this output by using data from an sql query. I have tried array_push() and array_merge() and the closest I have managed to get is this:

[{"a":{"ax":1,"abx":2}},{"b":{"bax":1,"bbx":2}}, ....]

Any ideas?

Answer

Mghost.friend picture Mghost.friend · Jun 5, 2012

First you should query all your data from table and then move it to an array, after this,use json_encode($array) function.

Place your array inside the parameters.

Then output will bee in json form.

$query="select *  from employees";
$result=mysql_query($query);
while($row=mysql_fetch_array($result))
{
  $employee=$row['employee']; 
  $country=$row['country'];

  $employees[] = array('employee'=> $employee,'country'=> $country);
}

echo $jsonformat=json_encode($employees);