удалить повторяющиеся значения из многомерного массива в PHP


У меня есть csv-файл, я читаю данные из него, я соединяю все, которые случайным образом соответствуют их строкам, таким как бренды, клиенты и скоро..,

Здесь я хочу удалить все дубликаты из многомерного массива, которые уже в массиве

Здесь вы можете увидеть, как все повторяющиеся значения добавляются к массиву на этом изображении

Вот мой php код

$csv = array_map('str_getcsv', file('test.csv'));
//echo '<pre>';
//print_r($csv);
//exit;
$brand =[];
foreach ($csv as $key => $value) {
    if(!(in_array($value[14], $brand))){
    $brand[$value[21]]['brands'][]=$value[14];    
    $brand[$value[21]]['products'][]=$value[1];    
    }   
}
echo '<pre>';
print_r($brand);

Спасибо и добро пожаловать за все предложения

2 2

2 ответа:

Вам нужно изменить, куда вы смотрите в in_array. Вы хотите сделать это для обоих, я уверен, а также проверить, что он установлен в первую очередь:

foreach ($csv as $key => $value) {
    if(!isset($brand[$value[21]]['brands']) ||
       !in_array($value[14], $brand[$value[21]]['brands'])){
            $brand[$value[21]]['brands'][]=$value[14];
    }
    if(!isset($brand[$value[21]]['products']) ||
       !in_array($value[14], $brand[$value[21]]['products'])){
            $brand[$value[21]]['products'][]=$value[1];
    }            
}

Array_unique() может сделать это за вас.

Http://php.net/manual/en/function.array-unique.php