PHP Json编码语法[关闭]

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;