我有这个数组:
include("config.php");
$start = "2014-06-20 08:00:00";
$data = mysql_query ("select * from evenement WHERE start = '$start'");
$zaznam = mysql_fetch_array ($data);
while($zaznam = mysql_fetch_array ($data))
{
$arr2[] = $zaznam["resourceId"]; //store query values in second array
}
如果我回复$ arr2,我得到这个:
Array ( [0] => STK1 )
现在我为array_search做了条件:
if (array_search('STK1', $arr2)) {
echo "Arr2 contains STK1 <br>";
}
else {
echo "Arr2 not contains STK1 <br>";
}
但我得到 Arr2不包含STK1 怎么可能?我做错了什么?
答案 0 :(得分:2)
这对PHP来说是完全正确的行为。
返回值的文档说:
Returns the key for needle if it is found in the array, FALSE otherwise.
在你的情况下,你得到0,在if。
中评估为false您必须使用!==
运算符检查值是否为false。
if (array_search('STK1', $arr2) !== false) {
echo "Arr2 contains STK1 <br>";
}
else {
echo "Arr2 not contains STK1 <br>";
}
答案 1 :(得分:1)
此函数可能返回布尔值FALSE,但也可能返回非布尔值,其值为FALSE。有关更多信息,请阅读有关布尔值的部分。使用===运算符测试此函数的返回值。
array_search
返回0,因为它在数组的索引0处找到匹配项。这是评价为假。
而是尝试:
if (array_search('STK1', $arr2) !== false) {
echo "Arr2 contains STK1 <br>";
}
else {
echo "Arr2 not contains STK1 <br>";
}