PHP:在foreach循环中附加数组,其中元素的条件与elementId匹配

PHP:在foreach循环中附加数组,其中元素的条件与elementId匹配,php,arrays,loops,append,Php,Arrays,Loops,Append,我有一个具有不同代码号的数组,而每个代码又可以引用不同的项。但是,每个代码可以引用多个项目,而每个项目可以有多个代码(即代码和项目之间的多对多关系) 我有项目,我有项目代码,现在我想通过代码段中的循环将正确的代码附加到正确的项目,如下所示(每个$itemCode对象包括$item.Id属性): 这里的问题是,每个匹配的代码都会覆盖上一个匹配的代码,因此最终它只为每个项目分配一个代码。但是,如果一个项目有多个代码,我希望所有这些代码都附加到特定项目的数组中,而不仅仅是最后一个匹配的代码。有人知道如

我有一个具有不同代码号的数组,而每个代码又可以引用不同的项。但是,每个代码可以引用多个项目,而每个项目可以有多个代码(即代码和项目之间的多对多关系)

我有项目,我有项目代码,现在我想通过代码段中的循环将正确的代码附加到正确的项目,如下所示(每个$itemCode对象包括$item.Id属性):


这里的问题是,每个匹配的代码都会覆盖上一个匹配的代码,因此最终它只为每个项目分配一个代码。但是,如果一个项目有多个代码,我希望所有这些代码都附加到特定项目的数组中,而不仅仅是最后一个匹配的代码。有人知道如何在这里捕获正确的代码并将其附加到正确的项目吗?

好的,因此我最终使用以下代码获得了它:

foreach($items as $item) {

    $itemCodesForItem = [];

    foreach($itemCodes as $itemCode) {

        while($itemCode->getItem()->getId() == $item->getId()) {

            array_push($itemCodesForItem, $itemCode->getCode());
            $item->setCode($itemCodesForItem);
            break;
        }
    }
}

打字错误:
if($itemCode->getItem()->getId()=$item->getId())
。您是赋值而不是比较。无论哪种方式,都会导致致命错误,因此我怀疑这是问题的原因。你能给我一个输入数组的小样本和期望的结果吗?我的不好。我现在已经修复了比较。比较已经修复,但问题仍然存在。正如我在第二条评论中所说的,请提供一些示例值来测试代码。
foreach($items as $item) {

    $itemCodesForItem = [];

    foreach($itemCodes as $itemCode) {

        while($itemCode->getItem()->getId() == $item->getId()) {

            array_push($itemCodesForItem, $itemCode->getCode());
            $item->setCode($itemCodesForItem);
            break;
        }
    }
}