我有一个名为$sum
的数组。在$sum
中,我在$files
中添加了每个文件的md5哈希值。如果那个数组不包含当前$hash
,我希望它做某事(比如说它不包含它)。
$sum = array();
foreach($files as $file) {
$hash = md5_file($file);
$sum[] = $hash;
if(in_array($hash, $sum) == FALSE) {
echo $hash . ' is not in the array';
}
}
如果我检查$sum
的内容(通过将if语句的$hash
更改为随机的“12345”),我可以看到哈希被添加到数组中。
为什么if语句不能正常工作?我似乎无法理解为什么它不起作用。提前谢谢。
答案 0 :(得分:1)
在if之前添加新的哈希值,因此它始终为true。只是改变他们的位置
if(in_array($hash, $sum) == FALSE) {
echo $hash . ' is already in the array';
}
$sum[] = $hash;
答案 1 :(得分:1)
答案 2 :(得分:0)
如果您正在检查是否存在值,则逻辑会反转
if(in_array($hash, $sum)) { //means the item is in the array
echo $hash . ' is already in the array';
}
答案 3 :(得分:-1)
搜索== TRUE
,而不是== FALSE