相当于 PHP 中的 R 函数 make.unique

问题描述 投票:0回答:1

我需要与 PHP 中的 R 函数 make.unique 相同的功能。

在 R 中:

> dup_array = c("a", "b", "a", "c")
> make.unique(dup_array)
[1] "a"   "b"   "a.1" "c"  

在 PHP 中:

> dup_array = array("a", "b", "a", "c")
> magic_function(dup_array)

什么是

magic_function

php r arrays unique
1个回答
0
投票

你可以这样做:

<?php
function make_unique($a) {
    $d = array_count_values($a);
    $f = array_filter($d, function($k){
        return $k>1;
    });
    $k = array_keys($f);
    for ($i=0; $i < count($a); $i++) { 
        if(in_array($a[$i],$k) && $d[$a[$i]]>0) {
            $f[$a[$i]]--;
            $n = $d[$a[$i]]-$f[$a[$i]];
            if($n>1)$a[$i] = $a[$i].".".($n-1);
        }
    }
    return $a;
}

// Test
$a = ["a","d","c","b","a","b","a","a","d","d","a"];
print_r(make_unique($a));
© www.soinside.com 2019 - 2024. All rights reserved.