我手动实施array_unique
功能。我这样做:
class Prelude {
public static function unique($xs) {
$arr = array();
foreach($xs as $atom) {
if (!array_search($atom, $arr)) {
var_dump($arr);
echo "<br>";
array_push($arr, $atom);
}
}
return $arr;
}
}
Prelude :: unique(array(1, 1, 1, 1, 1, 3, 3, 4, 4, 4, 6, 7, 8));
当$atom
为1
时,我注意到效果非常好,除了。在我的foreach
循环中,当我检查数值是否已经包含在数组中并且我要检查的值是1时,它只是忽略并告诉我数组中没有1
。这是我的输出:
这是我检查1
中是否有[1, 1, 1]
的时候:
有人能解释一下吗?
答案 0 :(得分:0)
简单,马塞洛。
您正在使用!
进行检查,这是非严格检查。你必须检查!== FALSE。
1为TRUE。