php检查名称包含字符串和更多检查名称
我制作了一个简单的函数来检查数组字符串是否包含某个名称。然而,由于名字越来越多,我不得不一直重复php检查名称包含字符串和更多检查名称,php,Php,我制作了一个简单的函数来检查数组字符串是否包含某个名称。然而,由于名字越来越多,我不得不一直重复elseif。如果有人能帮助我提高我的功能,请?我想查一下$arr的名字 如果数组看起来像$arr=array('PDF','PSD','PNG','GIF','Mp3','JPG'…) $i可以从mysql function checkname($arr, $name1, $name2, $name3......... ){ if (strpos($arr, $name1) !==
elseif
。如果有人能帮助我提高我的功能,请?我想查一下$arr的名字
如果数组看起来像$arr=array('PDF','PSD','PNG','GIF','Mp3','JPG'…)代码>
$i
可以从mysql
function checkname($arr, $name1, $name2, $name3......... ){
if (strpos($arr, $name1) !== false) {
return $name1;
}elseif(strpos($arr, $name2) !== false){
return $name2;
..............
}else{
return ' ';
}
}
checkname($arr[$i], 'PDF', 'PSD', 'PNG'........);
我可以建议和解决你的争论问题吗
<?php
function checkname($arr, $name) {
foreach (array_slice(func_get_args(), 1) as $name) {
if (strpos($arr, $name) !== false) {
return $name;
}
}
return '';
}
?>
..或者,要将其解为无穷大(或者无论内存可以处理多少个数组值),为什么不传递一个数组,只需执行以下操作:
<?php
function checkname($arr, $names) {
foreach ($names as $name) {
if (strpos($arr, $name) !== false) {
return $name;
}
}
return '';
}
checkname($arr[$i], array('PDF', 'PSD', 'PNG'));
?>
注意:
您当前的代码检查您姓名中任何位置的PDF
、PSD
、PNG
等(大写!!)的位置,因此MYPNG.PHP
将顺利通过,而doge.PNG
将失败。您是否设置使用具有动态参数数的函数?我将向参数传递两个字符串数组
function checkname($arr, $names){
foreach ($names as $value)
if (in_array(strtoupper($value), $arr))
return $value;
}
正如其他评论中提到的,您需要清理输入。看起来您的数据库正在以大写形式存储您的文件类型。如果这是真的,您可以随意使用strtoupper。为什么不传递一组名称呢?非常感谢!将勾选此项:-)@olo确保您检查了最新编辑-如果没有返回任何其他内容,它将始终返回$name
。