I want to format my json to look something like:
"items": [{
"item1": "text"
'item2': "text",
'item3': "text",
'item4': number,
'item5': number,
'item6': "text",
'item7': "text"
},
"item1": "text"
'item2': "text",
'item3': "text",
'item4': number,
'item5': number,
'item6': "text",
'item7': "text"
}] etc...
The problem is that I can only figure out how to have the array that I encode as an indexed array, which leads into an associative array.
I tried the code as follows in a loop obviously to get more than one row:
$final_return['items'] = array
(
'item1' => $item1,
'item2' => $item2,
'item3' => $item3,
'item4' => $item4,
'item5' => $item5,
'item6' => $item6,
'item7' => $item7
);
echo json_encode($final_return);
But this returns only the last set of items thrown into the array. I have got it working with an indexed version, but I want the items label in front of the whole collection.
When you are doing $final_return['items'] = array(...) you are assigning a new value on the key 'items' of $final_return array.
What you want is an $final_return['items'][] = array(....) and then again to push a new array into that array.
You need a array inside of array to achieve that.
Try This:
$final_return['items'] = array(
array
(
'item1' => '1',
'item2' => '2',
'item3' => '3',
'item4' => '4',
'item5' => '5',
'item6' => '6',
'item7' => '7'
),
array
(
'item1' => '1',
'item2' => '2',
'item3' => '3',
'item4' => '4',
'item5' => '5',
'item6' => '6',
'item7' => '7'
)
);
echo json_encode($final_return);
You can use array_push() to more arrays to the array
$data = array
(
'item1' => '1',
'item2' => '2',
'item3' => '3',
'item4' => '4',
'item5' => '5',
'item6' => '6',
'item7' => '7'
);
$final_return['items'] = array();
array_push($final_return['items'], $data, $data);
echo json_encode($final_return);