如何仅移除PHP数组中重复出现单词的首次实例
解决方案:移除数组中重复单词的首次出现实例
针对需求——检查数组中是否存在重复单词,仅移除该单词的首次出现实例,这里提供PHP的实现方案:
实现思路
- 先统计数组内每个单词的出现次数(区分大小写,与示例逻辑一致);
- 遍历原数组,对出现次数大于1的单词,跳过其首次出现的实例,其余元素全部保留;出现次数为1的单词直接保留。
代码实现
$array_words = ['harmony', 'Acrobat', 'harmony', 'harmony']; // 统计每个单词的出现次数 $wordCounts = array_count_values($array_words); $finalArray = []; // 标记已移除过首次出现的单词 $removedFirstOccurrence = []; foreach ($array_words as $word) { // 仅当单词重复且未移除过首次出现时跳过 if ($wordCounts[$word] > 1 && !isset($removedFirstOccurrence[$word])) { $removedFirstOccurrence[$word] = true; continue; } $finalArray[] = $word; } // 输出结果:Array ( [0] => Acrobat [1] => harmony [2] => harmony ) print_r($finalArray);
说明
- 使用
array_count_values()实现高效的次数统计,该函数会严格区分大小写,因此示例中的Acrobat会被视为唯一元素保留; - 通过
$removedFirstOccurrence数组标记已处理过的重复单词,确保仅跳过首次出现的实例; - 该方案支持同时处理多个不同的重复单词,例如数组
['apple', 'banana', 'apple', 'orange', 'banana']处理后会得到['banana', 'orange', 'banana']。
内容的提问来源于stack exchange,提问作者Marckson
相关产品推荐
相关产品推荐

