Убрать дублирование в массиве

96
27 мая 2021, 08:20

Есть массив:

Array(
    [9] => 11879,16806,23736
    [37] => 11879,16806
)

Где 9,37 - это id бренда, 11879,16806...16806 - это id товара

Делаю так:

$data['manufacturers'] = array();
foreach ($products as $manufacturer_id => $product) {
    $manufacturer_info = $this->model_catalog_manufacturer->getManufacturer($manufacturer_id);
    if ($product) {
        $products_id = explode(",", $product);
        foreach ($products_id as $product_id) {
            $product_info = $this->model_catalog_product->getProduct($product_id);
            if ($product_info) {
                $product_filters[] = array(
                    'product_id' => $product_info['product_id'],
                    'name' => $product_info['name']
                );
            }
        }
    } else {
        $product_filters = false;
    }
    if ($manufacturer_info) {
        $data['manufacturers'][] = array(
            'manufacturer_id' => $manufacturer_info['manufacturer_id'],
            'name' => $manufacturer_info['name'],
            'products_id' => $product,
            'products' => $product_filters
        );
    }
}

Получаю:

Array(
    [0] => Array(
        [manufacturer_id] => 9
        [name] => brend1
        [products_id] => 11879,16806,23736
        [products] => Array(
            [0] => Array(
                [product_id] => 11879
                [name] =>  Название товара 1
            )
            [1] => Array(
                [product_id] => 16806
                [name] => Название товара 2
            )
            [2] => Array(
                [product_id] => 23736
                [name] => Название товара 3
            )
        )
    )
    [1] => Array(
        [manufacturer_id] => 37
        [name] => brend2
        [products_id] => 11879,16806
        [products] => Array(
            [0] => Array(
                [product_id] => 11879
                [name] =>  Название товара 1
            )
            [1] => Array(
                [product_id] => 16806
                [name] => Название товара 2
            )
            [2] => Array(
                [product_id] => 23736
                [name] => Название товара 3
            )
            [3] => Array(
                [product_id] => 11879
                [name] =>  Название товара 4
            )
            [4] => Array(
                [product_id] => 16806
                [name] => Название товара 5
            )
        )
    )
)

Получается что во 2-м массиве товары с первого массива. Подскажите, пожалуйста, как сделать так что-бы товары не дублировались? Т.е. что-бы получилось так:

Array(
    [0] => Array(
        [manufacturer_id] => 9
        [name] => brend1
        [products_id] => 11879,16806,23736
        [products] => Array(
            [0] => Array(
                [product_id] => 11879
                [name] =>  Название товара 1
            )
            [1] => Array(
                [product_id] => 16806
                [name] => Название товара 2
            )
            [2] => Array(
                [product_id] => 23736
                [name] => Название товара 3
            )
        )
    )
    [1] => Array(
        [manufacturer_id] => 37
        [name] => brend2
        [products_id] => 11879,16806
        [products] => Array(
            [0] => Array(
                [product_id] => 11879
                [name] =>  Название товара 1
            )
            [1] => Array(
                [product_id] => 16806
                [name] => Название товара 2
            )
        )
    )
)
READ ALSO
Java, запись в файл со смещением

Java, запись в файл со смещением

Вопрос, как в Java(каким классом?) можно производить запись в середину файла(перезаписать блок по смещению)

127
Помогите понять суть дженериков в java

Помогите понять суть дженериков в java

прочитал достаточно литературы, но суть дженериков не понял

113
Как использовать JColorChooser?

Как использовать JColorChooser?

Как добавлять JColorChooser, я разобрался, а как его именно использовать, чтобы, к примеру, я выбрал цвет, и поменялся фон?

101