首页 > 解决方案 > PHP,循环内添加的新键和值在循环外消失

问题描述

对于学校作业,我试图将带有产品详细信息(如标题中的颜色和尺寸)的库存商品拆分为具有不同变体的库存商品组。我已经将它们全部拆分,但我只是不知道如何将此信息添加到 $stockItem 数组。($stockItem 位于数组 $stockItemGroup 内,而数组 $stockItemGroups 位于数组 $stockItemGroups 内)。

当我尝试向循环内的数组添加信息时,我无法在循环外访问该信息。如果我在此循环完成后对整个数组使用 print_r,则不会显示新信息。

for($i = 0; $i < count($stockItemGroup); $i++){
    $stockItem = $stockItemGroup[$i];
    $restString = str_replace($similarString, "", $stockItem['StockItemName']);
    $colour = getColour($restString, $allColours);
    $restVariant = getRestVariant($restString, $allColours);

    $stockItemGroup[$i]['Colour'] = $colour;
    $stockItemGroup[$i]['RestVariant'] = $restVariant;
    $stockItemGroup[$i]['NewItemName'] = createNewItemName($colour, $restVariant, $stockItem['StockItemName']);
}

我在 foreach 和 for 循环中都尝试过(我读到 foreach 做了一些复制,所以我认为这可能会导致它)。但无济于事。

我也显然尝试过

$stockItem['Colour'] = $colour;
$stockItem['RestVariant'] = $restVariant;
$stockItem['NewItemName'] = createNewItemName($colour,
                                              $restVariant, 
                                              $stockItem['StockItemName']);

但这也没有改变任何东西。

我是一个完全 Php 菜鸟,所以这可能很明显,任何帮助将不胜感激。

编辑:此循环在此循环中调用的方法内:

$stockItemGroups = getStockItemGroups();
foreach ($stockItemGroups as $stockItemGroup){
    addVariants($stockItemGroup);
    //writeNewGroup($stockItemGroup);
}

标签: phparraysloops

解决方案


foreach ($stockItemGroups as &$stockItemGroup){ 传递数组作为参考 – RiggsFolly


推荐阅读