PHP array_search不工作(返回空字符串)


PHP array_search not working (returns empty string)

我试图检查图像的文件名是否包含"cover"。不知何故,这对我不起作用了(我很确定它已经起作用了)。我复制了函数不起作用的部分。

$name=array("_IMG8555.jpg", "_IMG7769.jpg", "_IMG8458.jpg", "Cover.jpg", "_IMG7184.jpg");
$cov=array("Cover.png","Cover.jpg","Cover.jpeg", "cover.png","cover.jpg","cover.jpeg");

这个不适合我:

print_r(array_search($cov, $name)); //Returns empty String
print_r($name[array_search($cov, $name)]); //Returns first element of the name Array

我还添加了一个测试字符串,以确保这不是结果搜索字符串是相同的搜索值。

print_r($name[3]===$cov[1]); //Returns true(1)

有人能帮忙吗?为什么这个简单的脚本不能工作?

我也试过使用in_array(),但这也不起作用。

array_search()函数在数组中搜索值并返回键

array_search(key_value,array)

循环$cov数组,每次获取一个键,并检查$name array

foreach($cov as $i => $cov_s){
 if(in_array($cov_s, $name)){
  return $name[array_search($cov_s, $name)];
 }
}
return $name[0];

试试这段代码。

$name=array("_IMG8555.jpg", "_IMG7769.jpg", "_IMG8458.jpg", "Cover.jpg", "_IMG7184.jpg"); 
$cov=array("Cover.png","Cover.jpg","Cover.jpeg", "cover.png","cover.jpg","cover.jpeg");
foreach($cov as $c){
    if(array_search($c,$name)){
         //Do your success function
         return true;
    }
    else
        return false;
}