6563cc10d2
6563cc10d2

Reputation: 193

PHP generating JSON with multiple arrays

i want to generate json in this format

{
    "name": "item1",
    "description": "mydescript1"

}, 
{
    "name": "item2",
    "description": "mydescript2"

}

i have done this so far

for ($i = 0; $i<sizeof($name_); $i++){
    $ToSend_Json["name"]  = $name_[$i];
    $ToSend_Json["description"]  = $description_[$i];


}
 echo (json_encode($ToSend_Json));

the output i get for this is the last json which in this case is

 {
    "name": "item2",
    "description": "mydescript2"

}

what will be the correct way to do this

Upvotes: 1

Views: 78

Answers (1)

Jerome
Jerome

Reputation: 866

You're overwriting the values at each iteration of the loop. You should use an array for each iteration.

$json_array = [];

for ($i = 0; $i < count($name_); $i++){
    $ToSend_Json["name"] = $name_[$i];
    $ToSend_Json["description"] = $description_[$i];
    $json_array[] = $ToSend_Json;
}

echo json_encode($json_array);

Alternatively, you could use a foreach which is a better method for iterating a loop:

$json_array = [];

foreach ($name_ as $i => $name) {
    $ToSend_Json["name"] = $name;
    $ToSend_Json["description"] = $description_[$i];
    $json_array[] = $ToSend_Json;
}

echo json_encode($json_array);

Upvotes: 3

Related Questions