在PHP中删除ECHO输出中的重复项

时间:2020-07-17 作者:epostema

现在,下面的函数输出产品的所有变体图像。E、 g.3倍蓝色(S、M、L号),3倍红色(S、M、L号)

我想下面的功能只输出唯一的彩色图像。E、 g.1个蓝色,1个红色

尝试在回显字符串中使用array\\u unique,但无法使其正常工作。

谢谢你的帮助。

function loop_display_variation_attribute_and_thumbnail() {
    global $product;
    if( $product->is_type(\'variable\') ){
        foreach ( $product->get_visible_children() as $variation_id ){
            // Get an instance of the Product_Variation object
            $variation = wc_get_product( $variation_id );

            // Get "color" product attribute term name value
            $color = $variation->get_attribute(\'pa_color\');

            if( ! empty($color) ){
                // Display "color" product attribute term name value
                echo $color;

                // Display the product thumbnail with a defined size (here 30 x 30 pixels)
                echo $variation->get_image( array(30, 30) );
            }
        }
    }
}

1 个回复
最合适的回答,由SO网友:mozboz 整理而成

这是一个PHP编程问题,而不是Wordpress特有的问题,但您可以这样做。

这会跟踪$shownColors数组中显示了哪些颜色,并且不会两次显示相同的颜色。

function loop_display_variation_attribute_and_thumbnail() {
    global $product;
    if( $product->is_type(\'variable\') ){

        $shownColors = Array();

        foreach ( $product->get_visible_children() as $variation_id ){
            // Get an instance of the Product_Variation object
            $variation = wc_get_product( $variation_id );

            // Get "color" product attribute term name value
            $color = $variation->get_attribute(\'pa_color\');

            if( ! empty($color) && !in_array($color, $shownColors) ){
            // Display "color" product attribute term name value
                echo $color;

                // Display the product thumbnail with a defined size (here 30 x 30 pixels)
                echo $variation->get_image( array(30, 30) );

                $shownColors[] = $color;  // add this to colors we\'ve shown
            }
        }
    }
}