如何在PHP中实现R语言make.unique函数的功能?
实现PHP版的R语言make.unique函数
要实现和R语言make.unique()功能一致的PHP函数,核心逻辑是为重复出现的元素添加递增后缀,第一个出现的元素保持原样。以下是具体实现:
function make_unique($array) { $counts = []; $result = []; foreach ($array as $item) { if (!isset($counts[$item])) { $counts[$item] = 0; $result[] = $item; } else { $counts[$item]++; $result[] = $item . '.' . $counts[$item]; } } return $result; } // 测试示例 $dup_array = array("a", "b", "a", "c"); print_r(make_unique($dup_array));
函数说明
- 用
$counts数组跟踪每个元素的出现次数,初始值为0 - 遍历原数组时,首次遇到的元素直接存入结果数组,同时初始化该元素的计数
- 后续遇到重复元素时,计数递增1,将
元素.计数的格式存入结果数组 - 完全匹配R中
make.unique()的行为,重复元素的后缀从.1开始递增
测试输出
执行上述代码后,输出结果为:
Array ( [0] => a [1] => b [2] => a.1 [3] => c )
内容的提问来源于stack exchange,提问作者Ömer A.
相关产品推荐
相关产品推荐

