我试图检查图像的文件名是否包含"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;
}