检查条目是否与PHP中同一数组中的另一个条目匹配

时间:2016-09-05 14:14:04

标签: php arrays duplicates

目前我有一个看起来像这样的数组:

Array ( [searchKeyword] => kubota [searchUniques] => 361 ) 

Array ( [searchKeyword] => deutz dx [searchUniques] => 357 ) 

Array ( [searchKeyword] => kubota [searchUniques] => 350 ) 

正如你所看到的,久保田是一个双重进入。 我已经尝试使用for循环来检查条目是否为双,但它没有真正起作用。

我的意图如下:

如果有双重输入,我想删除双重输入,并将“searchUniques”添加到当时唯一的条目。

预期结果数组:

Array ( [searchKeyword] => kubota [searchUniques] => 711 ) 

Array ( [searchKeyword] => deutz dx [searchUniques] => 357 ) 

我希望这是有道理的。

1 个答案:

答案 0 :(得分:1)

如果要添加关键字的搜索次数,可以执行以下操作:

$arr = array(
    array(
        'searchKeyword' => 'kubota',
        'searchUniques' => 361,
    ),
    array(
        'searchKeyword' => 'deutzdx',
        'searchUniques' => 361,
    ),
    array(
        'searchKeyword' => 'kubota',
        'searchUniques' => 350
    ),
);

$newArr = array();

foreach($arr as $data){
    $keyword = $data['searchKeyword'];

    if(!isset($newArr[$keyword])){
        $newArr[$keyword] = array(
            'searchKeyword' => $keyword,
            'searchUniques' => 0,
        );
    }

    $newArr[$keyword]['searchUniques'] += $data['searchUniques'];
}

它创建了这个数组:

array (
  'kubota' => 
  array (
    'searchKeyword' => 'kubota',
    'searchUniques' => 711,
  ),
  'deutzdx' => 
  array (
    'searchKeyword' => 'deutzdx',
    'searchUniques' => 361,
  ),
)

希望这有帮助。