I have a a script that generate JSON-data with this struture. Im trying to loop out this is a HTML list with PHP but now getting it right.
This is the structure of the JSON:
{
"msg": [
"msg text 1",
"msg text 2",
"msg text 3",
"msg text 4",
"msg text 5",
"msg text 6"
]
}
My PHP code looks like this:
$json = file_get_contents('my_json_file');
$results = json_decode($json);
$array = (array)$results;
foreach ($array as $key => $item){
echo "Key: ".$key." Item: ".$item;
}
Output of this code is:
Key: msg Item: Array
Anyone who knows what i have to edit in order to get this right?
You have to do the foreach on array['msg']
to get all the msg items. otherwise you will loop over all the properties of the main array (in this case there is only msg
)
$json = file_get_contents('my_json_file');
$results = json_decode($json);
$array = (array)$results;
foreach ($array['msg'] as $item){
echo "Key: msg Item: ".$item;
}
The output will be :
Key: msg Item: msg text 1
Key: msg Item: msg text 2
...
If you still want to loop over the main array and want to print the content of msg
, you have to use print_r to print the content of the array
$json = file_get_contents('my_json_file');
$results = json_decode($json);
$array = (array)$results;
foreach ($array as $key => $item){
echo "Key: ".$key." Item: ".print_r($item, true);
}
The output will be :
Key: msg Item: array [
"msg text 1",
"msg text 2",
...
]
use this example code.
$json = '{
"msg": [
"msg text 1",
"msg text 2",
"msg text 3",
"msg text 4",
"msg text 5",
"msg text 6"
]}';
$results = json_decode($json);
$array = $results->msg;
foreach ($array as $key => $item){
echo "Key: ".$key." Item: ".$item;
}