簡體   English   中英

PHP 5.6 - 使用 if 語句在循環中修改對象僅更新最新

[英]PHP 5.6 - Modify object in loop with if-statements updates latest only

在我的系統中,汽車和產品類別是具有 EAN 代碼的組合。 每輛車都可以有多個具有不同 EAN 代碼的產品類別,我想使用屬於該特定組合的 EAN 代碼。 我使用 foreach 循環遍歷所有汽車並獲得正確的 EAN 代碼,並將其放入它擁有的產品類別的 Arraylist 中,但是每當我運行我的代碼時,只有最新的 EAN 代碼將用於汽車擁有的所有產品類別.

例如: Car 1 有 3 個類別:cat1 具有 EAN 123,cat2 具有 EAN 324,cat3 具有 EAN 543,但是當我檢查汽車 1 類別時,所有 EAN 代碼都設置為 543。

我正在談論的循環:

    foreach($cars as $car) {
        if($car->Cat1 == 1) {
            $ean = koppelEan::get()->filter( array('ProductID' => 127, 'AutoTypeID' => $car->ID))->first();
            $car->EAN = $ean->EAN;

            self::$Cat1->add($car);
        }

        if($car->Cat2 == 1) {
            $ean = koppelEan::get()->filter( array('ProductID' => 126, 'AutoTypeID' => $car->ID))->first();
            $car->EAN = $ean->EAN;
            self::$Cat2->add($car);
        }

        if($car->Cat3 == 1) {
            $ean = koppelEan::get()->filter( array('ProductID' => 781, 'AutoTypeID' => $car->ID))->first();

            $car->EAN = $ean->EAN;
            self::$Cat3->add($car);
        }

        if($car->Cat4 == 1) {
            $ean = koppelEan::get()->filter( array('ProductID' => 2924, 'AutoTypeID' => $car->ID))->first();
            $car->EAN = $ean->EAN;
            self::$Cat4->add($car);
        }

        if($car->Cat5 == 1) {
            $ean = koppelEan::get()->filter( array('ProductID' => 993, 'AutoTypeID' => $car->ID))->first();
            $car->EAN = $ean->EAN;
            self::$Cat5->add($car);
        }

        if($car->Cat6 == 1) {
            $ean = koppelEan::get()->filter( array('ProductID' => 5195, 'AutoTypeID' => $car->ID))->first();
            $car->EAN = $ean->EAN;
            self::$Cat6->add($car);
        }
    }

經過一些深入的研究,我發現了它

            $tempCar = clone $car;
            $ean = koppelEan::get()->filter( array('ProductID' => 993, 'AutoTypeID' => $car->ID))->first();
            $tempCar->EAN = $ean->EAN;
            self::$cat1->add($tempCar);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM