我正在尝试循环遍历多维数组,但在foreach循环中它只输出错误
索引'名称'未找到。指数'卡路里'不是创始人
foreach($responsex['foods'] as $fx5)
{
echo($fx5['name']);
echo($fx5['calories']);
}
回复:即 $ responsex
数组(' encodedId' =>' 4H8xxx',' displayName' =>' sam',)数组(3) { ["食品"] => array(3){[0] => array(5){[" isFavorite"] =>布尔(假) [" LOGDATE"] => string(10)" 2016-04-15" [" LOGID"] => INT(7139364449) [" loggedFood"] => array(10){[" accessLevel"] =>字符串(6)" PUBLIC" ["量"] => int(2)["品牌"] => string(0)"" ["卡路里"] => INT(574) [" foodId"] => int(536497687)[" locale"] => string(5)" en_AU" [" mealTypeId"] => int(7)[" name"] => string(14)" Potato Pudding" ["单元"] => array(3){[" id"] => int(91)[" name"] => string(3)" cup" ["多个"] => string(4)" cups" } ["单位"] => array(8){[0] => INT(6754) [1] => int(91)[2] => int(256)[3] => int(279)[4] => int(226)[5] => int(180)[6] => int(147)[7] => int(389)}} [" nutrition值"] => array(6){["卡路里"] => int(574)["碳水化合物"] => float(49.16)[" fat"] => float(34.98)[" fiber"] => float(3.6)["蛋白质"] =>浮动(16.1) ["钠"] => int(1524)}} [1] => array(5){[" isFavorite"] => bool(false)[" logDate"] => string(10)" 2016-04-15" [" LOGID"] => int(7138517833)[" loggedFood"] => array(10){[" accessLevel"] => 字符串(6)" PUBLIC" ["量"] => int(1)["品牌"] => string(0)"" ["卡路里"] => int(359)[" foodId"] => int(535239347)[" locale"] => string(5)" en_AU" [" mealTypeId"] => int(7)[" name"] => string(54)" Fish, 奶酪酱面条和蔬菜(混合物)" ["单元"] =>阵列(3) {[" id"] => int(91)[" name"] => string(3)" cup" ["多个"] =>串(4) "杯" } ["单位"] => array(8){[0] => int(6837)[1] => int(91)[2] => int(256)[3] => int(279)[4] => int(226)[5] => int(180)[6] => INT(147) [7] => int(389)}} [" nutrition值"] => array(6){["卡路里"] => int(359)["碳水化合物"] => float(28.01)[" fat"] => float(14.05)[" fiber"] => float(2.9)["蛋白质"] => float(29.08)[" sodium"] => int(534)}} [2] => array(5){[" isFavorite"] => bool(false)[" logDate"] =>串(10) " 2016年4月15日" [" LOGID"] => int(7138326866)[" loggedFood"] => array(10){ [" ACCESSLEVEL"] =>字符串(6)" PUBLIC" ["量"] => int(1)["品牌"] => string(0)"" ["卡路里"] => int(157)[" foodId"] => INT(536493638) ["区域设置"] => string(5)" en_AU" [" mealTypeId"] => int(7)[" name"] => string(11)" Cashew Nuts" ["单元"] => array(3){[" id"] => INT(226) ["名称"] => string(2)" oz" ["多个"] => string(2)" oz" } ["单位"] => array(4){[0] => int(226)[1] => int(180)[2] => int(147)[3] => INT(389) }" nutritionalValues"] => array(6){["卡路里"] => INT(157) ["碳水化合物"] => float(8.56)[" fat"] => float(12.43)[" fiber"] =>浮动(0.9) [&#34蛋白质"] => float(5.17)[" sodium"] => int(3)}}} ["目标"] => array(2){["卡路里"] => int(1161)[" estimatedCaloriesOut"] => int(1411)} ["摘要"] => array(7){["卡路里"] => INT(1090) ["碳水化合物"] => float(85.73)[" fat"] => float(61.46)[" fiber"] =>浮动(7.4) [&#34蛋白质"] =>漂浮(50.35)["钠"] => int(2061)[" water"] => int(0)} }
答案 0 :(得分:1)
您可以递归迭代数组并按如下方式将它们打印为键值对。
<?php
//initially call the function
print_array($responsex);
//if you are sure that the array is two dimensional, no need to go recursively.
function print_array($array){
foreach($array as $key=>$value){
if(is_array($value)){
if($key==="foods"){
var_dump($array[$key]);
}
}
else{
echo($key." => ".$value);
}
}
}
您可以使用上述代码定义除打印以外的其他任务。
修改强>:
如果您确定该数组是二维的,则无需递归。
{{1}}
答案 1 :(得分:0)
使用这种方式..
<?php
$keys = array_keys($data);// put your array name as a place of $data
$iterations = count($array[$keys[0]]);
for($i = 0; $i < $iterations; $i++) {
$data = array();
foreach($array as $key => $value) {
$data[$key] = $value[$i];
}
print_r($data);
}
?>