从php中的多维数组中删除重复值

时间:2018-02-28 17:20:33

标签: php arrays multidimensional-array associative-array

我有csv文件,我正在从中读取数据,我已加入所有随机匹配的行,如品牌,客户和很快......,

这里我想从已经在数组

中的多维数组中删除所有重复项

Here you can see how all duplicate values are appending to array in this image

这是我的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 个答案:

答案 0 :(得分:1)

您需要修改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];
    }            
}

答案 1 :(得分:0)

array_unique()可以帮到你。

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