I'm new to json and decided to use it because it looks promising. How does the syntax work?
Here is my simple php script:
$usernames = array('jake', 'john', 'jackie', 'jared');
$users = array();
for($i = 0; $i < 4; $i++)
{
$users[$i]['id'] = $i;
$users[$i]['name'] = $usernames[i];
}
$data = json_encode( $users );
echo $data;
It Outputs:
{"i":{"id":3,"name":null}}
I want it to output:
[{"id": 1,"name": "jake"},{"id": 2,"name": "john"},{"id": 3,"name": "jackie"},{"id": 4,"name": "jared"}]
Just one line inside the loop will do it
$usernames = array('jake', 'john', 'jackie', 'jared');
$users = array();
for($i = 0; $i < 4; $i++)
{
$users[] = array("id"=>$i+1,"name"=>$usernames[$i]);
}
$data = json_encode( $users );
echo $data;
Output as you wanted in your question
[{"id":1,"name":"jake"},{"id":2,"name":"john"},{"id":3,"name":"jackie"},{"id":4,"name":"jared"}]
Try to use:
$usernames = array('jake', 'john', 'jackie', 'jared');
$users = array();
foreach($usernames as $id => $username)
{
$users[$id]['id'] = $id + 1;
$users[$id]['name'] = $username;
}
$data = json_encode( $users );
echo $data;
$usernames = array('jake', 'john', 'jackie', 'jared');
$users = array();
for($i = 0; $i < 4; $i++)
{
$user=array();
$user['id'] = $i;
$user['name'] = $usernames[$i];
$users[]=$user;
}
$data = json_encode( $users );
echo $data;
Output:
[{"id":0,"name":"jake"},{"id":1,"name":"john"},{"id":2,"name":"jackie"},{"id":3,"name":"jared"}]
Try this,
$usernames = array('jake', 'john', 'jackie', 'jared');
$users = array();
for($i = 0; $i < 4; $i++)
{
$users[$i]['id'] = $i;
$users[$i]['name'] = $usernames[$i];
}
$data = json_encode( $users );
echo $data;
Changed,
$usernames[i]
To,
$usernames[$i]
And I think its better using a foreach loop instead of for..
$usernames = array('jake', 'john', 'jackie', 'jared');
$users = array();
foreach($usernames as $id=>$username{
$id++;
$users[]=array('id'=>$id,'name'=>$username);
}
$data=json_encode($users);echo $data;