如果值重复,则不要回声


Dont echo if value is a duplicate

我正在使用下面的代码循环浏览Magento中可配置的所有简单产品。代码显示每个简单产品的特定颜色数据。

然而,如果有两个尺寸不同但颜色相同的简单产品,它会重复两次有关该颜色的信息,我只需要它显示一次。

<div class="colour-swatch">
    <h1>Other Colours Available</h1>
    <?php
     $conf = Mage::getModel('catalog/product_type_configurable')->setProduct($_product);
    $col = $conf->getUsedProductCollection()->addAttributeToSelect('*')->addFilterByRequiredOptions(); ?>
    <div class="relative">
      <?php
        foreach($col as $simple_product){ ?>
            <div class="container-swatch">
              <img width="35" height="35" src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'catalog/product' . $simple_product->getSwatch() ?>">
                  <div class="content">
                    <div class="inside-swatch-name"><?php echo $simple_product->getAttributeText('real_colour'); ?></div>
                    <img src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'catalog/product' . $simple_product->getLargeSwatch() ?>">
                  </div>
            </div>
        <?php }  ?>
        <?php if ($synb == 'Yes') { ?>
        <div class="swatch-order">
          <a href="#" class="topopup2 order-samples-button">ORDER SAMPLES</a>
        </div>
        <?php } else {
          //do nothing 
        } ?>
    </div>
</div>
$colors = array();
foreach($col as $simple_product){ 
$color = $simple_product->getAttributeText('real_colour');
if(!in_array($color, $colors)){
$colors[] = $color; ?>
//do the rest from your foreach

更改此项:

$col = $conf->getUsedProductCollection()->addAttributeToSelect('*')->addFilterByRequiredOptions(); ?>

到此:

$col = $conf->getUsedProductCollection()->addAttributeToSelect('*')->addFilterByRequiredOptions()->addGroupByAttribute('real_colour'); ?>

看看这是否有效。