我正在从这样的json feed中检索数据:
{
'data': {
'stuffs': [
{
'cats': '12',
'dogs': '53',
'bananas': '8',
},
{
'cats': '42',
'dogs': '49',
'bananas': '18',
},
{
'cats': '14',
'dogs': '900',
'bananas': '2',
}]
}
}
用这样的函数抓取数据:
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;
}
我想建立一个像这样的foreach循环:
foreach ($myarray as $data){
echo $data['cat'];
echo $data['dog'];
echo $data['banana'];
}
让它返回这样的东西:
12
53
8
42
49
18
14
900
2
但foreach($ myarray作为$ data)无效。
问题是它只返回数组中每个键的1个字符,这个字符似乎是随机的。
我能做些什么就像在foreach中没有“as”一样?
像:
foreach($myarray){
// the goods
}
提前致谢。
答案 0 :(得分:1)
如果你想使用foreach,你仍然必须使用as
foreach ($myarray as $val){
echo $val;
}
对于测试数组:
$myarray = array(
"cat" => '12',
"dog" => '5',
"banana" => '7'
);
这将输出
12
5
7
答案 1 :(得分:1)
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'];
}
你应该以你想要的方式得到结果。你总是需要foreach的“as”。