这是一个面试问题:
将第一个重复元素从整数数组中返回的最佳方法是什么?
例:
给定一个数组[12, 46, 244, 0, 12, 83, 48, 98, 233, 83, 26, 91, 119, 148, 98].
这种情况下的返回值是12.
如何才能做到这一点?
Hai*_*vgi 11
我认为如果你看一下性能,foreach循环就会更快
# temp array
$array_help = array();
# run over the array
foreach ($array as $val) {
if (isset($array_help[$val]))
# found if is set already !
return $val;
else
# its the first time this value appear
$array_help[$val] = 1;
}
Run Code Online (Sandbox Code Playgroud)
这将为您提供所有重复值及其原始位置:
$diff = array_diff_assoc($array, array_unique($array));
var_dump($diff);
Run Code Online (Sandbox Code Playgroud)
结果:
array(3) {
[4]=> int(12)
[9]=> int(83)
[14]=> int(98)
}
Run Code Online (Sandbox Code Playgroud)