在数组中查找重复的字符串

时间:2017-07-09 11:24:59

标签: php

家伙!我有一个包含我的产品ID和名称的数据库。我需要找到每种产品的不同颜色 - 它们具有重复的名称。我尝试了很多东西,但我仍然没有运气,因为一种产品可能有5种颜色。它需要一行接一行地检查(因为在开头可能有一个产品使用相同的名称,这不是一个不同的颜色,而是一个不同的产品)。有人可以帮帮我吗?谢谢!

此:

array(
    0 => array('D41596', 'ДАМСКИ КОМПЛЕКТ БЛУЗА ТРИКО'),
    1 => array('D41597', 'ДАМСКИ КОМПЛЕКТ БЛУЗА ТРИКО С ПОЛА BALMAIN 5310'),
    2 => array('D41599', 'ДАМСКИ КОМПЛЕКТ БЛУЗА ТРИКО С ПОЛА BALMAIN 5310'),
    3 => array('D41600', 'ДАМСКИ КОМПЛЕКТ БЛУЗА С ПОЛА РАЕ 1736'),
    4 => array('D41601', 'ДАМСКИ КОМПЛЕКТ БЛУЗА С ГАЩЕРИЗОН 613 НА БОЛИНКИ'),
    5 => array('D41602', 'ДАМСКИ КОМПЛЕКТ БЛУЗА С ГАЩЕРИЗОН 613 НА БОЛИНКИ'),
    6 => array('D41603', 'ДАМСКИ КОМПЛЕКТ БЛУЗА С ПАНТАЛОН 615'),
    7 => array('D41604', 'ДАМСКИ КОМПЛЕКТ БЛУЗА С ПАНТАЛОН 615'),
    8 => array('D41605', 'ДАМСКИ КОМПЛЕКТ КЪС ПАНТАЛОН С ТОП САТЕН'),
    9 => array('D41606', 'ДАМСКИ КОМПЛЕКТ КЪС ПАНТАЛОН С ТОП САТЕН'),
    10 => array('D41607', 'ДАМСКИ КОМПЛЕКТ КЪС ПАНТАЛОН С ТОП САТЕН'),
    11 => array('D41608', 'ДАМСКИ КОМПЛЕКТ ДЪНКИ С БЛУЗА ТРИКО 062 ФЛАМИНГО'),
    12 => array('D41609', 'ДАМСКИ КОМПЛЕКТ КЪС ДЪНКОВ ПАНТАЛОН С БЛУЗА ТРИКО 085 КОЛИБРИ'),
    13 => array('D41610', 'ДАМСКИ КОМПЛЕКТ КЪС ДЪНКОВ ПАНТАЛОН С БЛУЗА ТРИКО 075 ЦВЕТЯ ОТ ПАЕТИ'),
    14 => array('D41611', 'ДАМСКИ КОМПЛЕКТ ДЪНКОВА ПОЛА С БЛУЗА ТРИКО 072 ЛИЛАВИ ЦВЕТЯ С ПАЕТИ')
);

应输出:

array(
    'D41597' => 'D41597,D41599',
    'D41599' => 'D41597,D41599',
    'D41601' => 'D41601,D41602',
    'D41602' => 'D41601,D41602',
    'D41603' => 'D41603,D41604',
    'D41604' => 'D41603,D41604',
    'D41605' => 'D41605,D41606,D41607',
    'D41606' => 'D41605,D41606,D41607',
    'D41607' => 'D41605,D41606,D41607'
);

1 个答案:

答案 0 :(得分:0)

这段代码可以解决问题。基本上,它循环ID并检查具有相同名称的事件,然后将找到的项目ID添加到结果表中:

$results = array();

foreach ($arr as $element) {

    list ($key, $value) = $element; 
    $searchResults = array();   

    foreach ($arr as $searchElement) {              
        if ($searchElement[1] == $value) {
            $searchResults[] = $searchElement[0];
        }
    }

    if (sizeof($searchResults) > 1) {
        $results[$key] = implode(',', $searchResults);
    }       
}

print_r($results);

Array
(
    [D41597] => D41597,D41599
    [D41599] => D41597,D41599
    [D41601] => D41601,D41602
    [D41602] => D41601,D41602
    [D41603] => D41603,D41604
    [D41604] => D41603,D41604
    [D41605] => D41605,D41606,D41607
    [D41606] => D41605,D41606,D41607
    [D41607] => D41605,D41606,D41607
)