I'm retrieving data from a json feed like this:
{
'data': {
'stuffs': [
{
'cats': '12',
'dogs': '53',
'bananas': '8',
},
{
'cats': '42',
'dogs': '49',
'bananas': '18',
},
{
'cats': '14',
'dogs': '900',
'bananas': '2',
}]
}
}
And grabbing the data with a function like this:
function getData($url){
$json = file_get_contents($url);
$json_output = json_decode($json, TRUE);
foreach ($url['data']['stuffs'] as $benum){
$cats = $benum['cats'];
$dogs = $benum['dogs'];
$bananas = $benum['bananas'];
}
$myarray = array(
"cat" => $cats,
"dog" => $dogs,
"banana" => $bananas,
);
return $myarray;
}
I want to set up a foreach loop something like this:
foreach ($myarray as $data){
echo $data['cat'];
echo $data['dog'];
echo $data['banana'];
}
And have it return something like this :
12
53
8
42
49
18
14
900
2
But foreach($myarray as $data) is not working.
The problem is that it only returns 1 character from each key in the array which seems to be random.
Is there something that I could do that would be like not having "as" in the foreach at all?
Like:
foreach($myarray){
// the goods
}
Thanks in advance.
function getData($url){
$myarray = array();
$json = file_get_contents($url);
$json_output = json_decode($json, TRUE);
foreach ($url['data']['stuffs'] as $benum){
$cats = $benum['cats'];
$dogs = $benum['dogs'];
$bananas = $benum['bananas'];
$myarray[] = array(
"cat" => $cats,
"dog" => $dogs,
"banana" => $bananas,
);
}
}
foreach ($myarray as $data){
echo $data['cat'];
echo $data['dog'];
echo $data['banana'];
}
You should get the result in the way you want. You will always need the "as" with foreach.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With