亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP - 從 foreach 中刪除重復項

PHP - 從 foreach 中刪除重復項

PHP
慕森王 2021-11-05 12:45:34
在 Magento 中,我有一個包含產品的數組,我想從這些產品中獲得它們所在的類別。這就是我所擁有的,但我正在使用 foreach 來瀏覽產品,因此需要刪除重復項.我已經有了 foreach 的類別名稱,但是現在需要刪除一些重復項。<?php foreach ($_productCollection as $_product): ?>    <div class="bk-all-products">        <?php            $bk_product_id = $_product->getCategoryIds();             $bk_category_id = $bk_product_id[1];            $categoryId = $bk_category_id;            $_objectManager = \Magento\Framework\App\ObjectManager::getInstance();            $category = $_objectManager->create('Magento\Catalog\Model\Category')            ->load($categoryId);            $bk_category_id_name = $category->getName();            echo $bk_category_id_name;            echo "<br><br>";        ?>    </div><?php endforeach; ?>附加信息當我還在 foreach 中打印數組時,這就是返回值:數組 ( [0] => 354 [1] => 362 [2] => 360 [3] => 414) Cafe?nevrije koffie數組 ( [0] => 354 [1] => 362 [2] => 364 [3] => 414) Cafe?nevrije koffie數組 ( [0] => 354 [1] => 367 ) Koffiepakketten數組 ( [0] => 354 [1] => 364 )數組 ( [0] => 354 [1] => 360 ) 濃縮咖啡數組([0] => 354 [1] => 360 [2] => 414)Espressokoffie數組([0] => 354 [1] => 364 [2] => 414)數組([0] => 354 [1] => 360 [2] => 414)Espressokoffie數組 ( [0] => 354 [1] => 367 ) Koffiepakketten數組 ( [0] => 354 [1] => 367 ) Koffiepakketten數組 ( [0] => 367 [1] => 354 )數組 ( [0] => 367 [1] => 354 )
查看完整描述

1 回答

?
有只小跳蛙

TA貢獻1824條經驗 獲得超8個贊

最簡單的方法是將已經顯示的類別存儲在 an 中,Array并使用in_array檢查您要顯示的類別是否已經在其中


編輯:存儲 id 可能比存儲名稱更好,因為如果已經獲取,您可以避免獲取名稱:


<?php

$diplayed_categories = []; //initializing array

foreach ($_productCollection as $_product):

?>

    <div class="bk-all-products">

        <?php

            $bk_product_id = $_product->getCategoryIds(); 

            $bk_category_id = $bk_product_id[1];


            if(!in_array($bk_category_id, $diplayed_categories)){ //testing if not in array

                $diplayed_categories[] = $bk_category_id; //filling the array


                //moved inside the if, no need to fetch it again if it exists

                //$categoryId = $bk_category_id; //useless var

                $_objectManager = \Magento\Framework\App\ObjectManager::getInstance();

                $category = $_objectManager->create('Magento\Catalog\Model\Category')

                  ->load($bk_category_id); //replaced by $bk_category_id

                $bk_category_id_name = $category->getName();


                echo $bk_category_id_name;


                echo "<br><br>";

            }

        ?>

    </div>

<?php endforeach; ?>


查看完整回答
反對 回復 2021-11-05
  • 1 回答
  • 0 關注
  • 286 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號