我有以下从我的css文件中提取的类名数组
test array after printing values:
Array
(
[0] => #sa_nav
[1] => #sa_nav ul li.account
[2] => .loyaltyBox
)
if(array_search("#sa_nav",$test))
{
echo 'Element is exist';
}
else
{
echo 'Element is not exist';
}
虽然元素存在于数组中,但它会打印“元素不存在”。请帮忙
答案 0 :(得分:4)
使用in_array
功能
$test = array("#sa_nav", "#sa_nav ul li.account", ".loyaltyBox");
if (in_array("#sa_nav", $test)) {
echo 'Element is exist';
} else {
echo 'Element is not exist';
}
//输出
Element is exist
答案 1 :(得分:2)
array_search执行的操作是在数组中搜索给定值,并在成功时返回相应的键
这意味着它不返回true或false,因此请使用in_array()
php函数。
in_array
- 检查数组中是否存在值
$test = array("#sa_nav","#sa_nav ul li.account",".loyaltyBox");
if(in_array("#sa_nav",$test))
{
echo 'Element is exist';
}
else
{
echo 'Element is not exist';
}
搜索并返回TRUE FASLE
function search_array($arrays, $cssSelector)
{
foreach($arrays as $key => $array)
{
if ( $array === $cssSelector )
return true;
}
return false;
}
并将其称为search_array($array,'#sa_nav');
答案 2 :(得分:2)
array_search()搜索一个值并返回相应的值 密钥如果匹配。
现在你的情况 -
#sa_nav键值为0
所以进入IF
循环它会评估类似的东西 -
array_search("#sa_nav",$test) return value is `0` [Zero].
因此表达式将被评估为 -
if(0)
所以输出 -
Element is not exist
如果你尝试使用这个代码块,它将被评估为true
$test = array("#sa_nav","#sa_nav ul li.account",".loyaltyBox");
if(array_search(".loyaltyBox",$test))
{
echo 'Element is exist';
}
else
{
echo 'Element is not exist';
}
要使您的代码片段正常工作,您可以使用in_array()
方法尝试,如大多数其他答案所示。
答案 3 :(得分:1)
手册始终是第一个看的地方:
如果在数组中找到针,则返回针的键,否则返回FALSE。
警告强> 的
此函数可能返回布尔值FALSE,但也可能返回非布尔值,其值为FALSE。有关更多信息,请阅读有关布尔值的部分。使用===运算符测试此函数的返回值。
答案 4 :(得分:0)
检查此代码
$test = array("#sa_nav","#sa_nav ul li.account",".loyaltyBox");
if(in_array("#sa_nav",$test))
{
echo 'Element is exist';
}
else
{
echo 'Element is not exist';
}
答案 5 :(得分:0)
您可以使用Php内置功能
array_search — Searches the array for a given value and returns the corresponding key if successful
或者您也可以使用
答案 6 :(得分:0)
首先,当您提出类似这样的问题时,请考虑使用var_dump()
来显示您的数组所包含的内容。
其次,你的病情应该做一个简单的改变:
if (false !== array_search("#sa_nav",$test)) {
}
如果#sa_nav
是第一项,array_search()
将返回0
,其评估为false
。考虑到你并没有真正以任何特别有意义的方式使用array_search()
的返回值,你也可以使用in_array()
,它总是返回一个布尔值。