Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP数组仅显示for循环中的最后一项 我在做什么: 读取XML配方文件并获取其味道(为简单起见,我提供了一个片段) 转换部分数据 使用键创建多个味道数组(尝试) json_encode(对数组进行编码并插入到MySQL数据库中)(不包括代码,因为代码不重要) 问题与问题_Php_Json_Xml - Fatal编程技术网

PHP数组仅显示for循环中的最后一项 我在做什么: 读取XML配方文件并获取其味道(为简单起见,我提供了一个片段) 转换部分数据 使用键创建多个味道数组(尝试) json_encode(对数组进行编码并插入到MySQL数据库中)(不包括代码,因为代码不重要) 问题与问题

PHP数组仅显示for循环中的最后一项 我在做什么: 读取XML配方文件并获取其味道(为简单起见,我提供了一个片段) 转换部分数据 使用键创建多个味道数组(尝试) json_encode(对数组进行编码并插入到MySQL数据库中)(不包括代码,因为代码不重要) 问题与问题,php,json,xml,Php,Json,Xml,我只看到每个数组中每个XML配方的最后一项。你能看出我做错了什么吗 输出: 代码 在循环结束时,只需将值分配给结束数组的相同元素 $flavourarray[] = ['flavourcompany' => $flavourCompanyabv2, 'flavourname' => $flavourName2, 'flavourpercent' => $flavourPercentage ]; 这些值将覆盖以前的

我只看到每个数组中每个XML配方的最后一项。你能看出我做错了什么吗

输出: 代码
在循环结束时,只需将值分配给结束数组的相同元素

    $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) 
        } 
    }