PHP array_search无效(返回空字符串)

时间:2016-10-08 12:06:33

标签: php arrays sorting

我正在尝试检查图片的文件名是否包含“封面”。不知何故,这停止了我的工作(很确定它已经工作)。我复制了我的功能部分无法正常工作。

$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(),但这也无效。

2 个答案:

答案 0 :(得分:0)

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

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

循环你的$ cov数组并一次获得一个键并使用$ name array

进行检查
{{1}}

答案 1 :(得分: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;
}