从数组中删除重复的strlen项?

Kri*_*eth 2 php arrays foreach loops

这是从阵列中删除重复的strlen项的最简单方法吗?我做了很多类似的任务编程,这就是为什么我要问,如果我做得太复杂,或者这是最简单的方法.

$usedlength = array();
$no_duplicate_filesizes_in_here = array();
foreach ($files as $file) {
    foreach ($usedlength as $length) {
        if (strlen($file) == $length) continue 2;
    }
    $usedlength[] = strlen($file);
    $no_duplicate_filesizes_in_here[] = $file;
}
$files = $no_duplicate_filesizes_in_here;
Run Code Online (Sandbox Code Playgroud)

sal*_*the 6

这里没有很多巨大的错误与手动循环,虽然你的例子可能是:

$files = array_intersect_key($files, array_unique(array_map('strlen', $files)));
Run Code Online (Sandbox Code Playgroud)

PHP提供了大量有用的数组函数.