PHP数组仅显示for循环中的最后一项 我在做什么: 读取XML配方文件并获取其味道(为简单起见,我提供了一个片段) 转换部分数据 使用键创建多个味道数组(尝试) json_encode(对数组进行编码并插入到MySQL数据库中)(不包括代码,因为代码不重要) 问题与问题
我只看到每个数组中每个XML配方的最后一项。你能看出我做错了什么吗 输出: 代码PHP数组仅显示for循环中的最后一项 我在做什么: 读取XML配方文件并获取其味道(为简单起见,我提供了一个片段) 转换部分数据 使用键创建多个味道数组(尝试) json_encode(对数组进行编码并插入到MySQL数据库中)(不包括代码,因为代码不重要) 问题与问题,php,json,xml,Php,Json,Xml,我只看到每个数组中每个XML配方的最后一项。你能看出我做错了什么吗 输出: 代码 在循环结束时,只需将值分配给结束数组的相同元素 $flavourarray[] = ['flavourcompany' => $flavourCompanyabv2, 'flavourname' => $flavourName2, 'flavourpercent' => $flavourPercentage ]; 这些值将覆盖以前的
在循环结束时,只需将值分配给结束数组的相同元素
$flavourarray[] = ['flavourcompany' => $flavourCompanyabv2,
'flavourname' => $flavourName2,
'flavourpercent' => $flavourPercentage ];
这些值将覆盖以前的值,并且不能有多个具有相同键名的项
而是使用类似于
[0] => Array
(
[flavourcompany] => Capella
[flavourname] => Chocolate Glazed Doughnut
[flavourpercent] => 7.00
)
[1] => Array
(
[flavourcompany] => Inawera
[flavourname] => Biscuit
[flavourpercent] => 0.75
)
它将所有项添加到新元素中
根据您的测试数据,这将给出(删节)
PHP数组具有唯一的键,因此必须构建数组数组。 因此,你必须改变:
array(2) {
[0]=> array(3) {
["flavourCompany"]=> string(7) "Capella"
["flavourName"]=> string(25) "Chocolate Glazed Doughnut"
["flavourPercent"]=> float(7)
}
[1]=> array(3) {
["flavourCompany"]=> string(7) "Inawera"
["flavourName"]=> string(7) "Biscuit"
["flavourPercent"]=> float(0.75)
}
}
输出:
对于相同的键(即flavourCompany),您的预期输出具有多个值,这些值是否应该是单独的子数组?理想情况下,我希望输出为shownOutput,如图所示是不可能的-数组中的每个键必须是唯一的,否则将被覆盖。为了避免这个问题,您可以使用子数组。请参阅下面的答案…我建议不要使用XML->JSON->array方法,但这可能超出了这个问题的范围。这太棒了,效果很好,我可以在4分钟内接受。显然:/感谢您的快速回答,你又为我省下了4个小时的挫败感(对你来说是巨大的+1:)
$flavourarray['flavourcompany'] = $flavourCompanyabv2;
$flavourarray['flavourname'] = $flavourName2;
$flavourarray['flavourpercent'] = $flavourPercentage;
$flavourarray[] = ['flavourcompany' => $flavourCompanyabv2,
'flavourname' => $flavourName2,
'flavourpercent' => $flavourPercentage ];
[0] => Array
(
[flavourcompany] => Capella
[flavourname] => Chocolate Glazed Doughnut
[flavourpercent] => 7.00
)
[1] => Array
(
[flavourcompany] => Inawera
[flavourname] => Biscuit
[flavourpercent] => 0.75
)
$flavourarray[] = [
'flavourCompany' => $flavourCompanyabv2,
'flavourName' => $flavourName2,
'flavourPercent' => $flavourPercentage
];
array(2) {
[0]=> array(3) {
["flavourCompany"]=> string(7) "Capella"
["flavourName"]=> string(25) "Chocolate Glazed Doughnut"
["flavourPercent"]=> float(7)
}
[1]=> array(3) {
["flavourCompany"]=> string(7) "Inawera"
["flavourName"]=> string(7) "Biscuit"
["flavourPercent"]=> float(0.75)
}
}