2014-02-23 139 views
0

$name是字符串,包含文件名类似下面,最佳方式,如果一个字符串包含另一个字符串

AAA_ss_01.pdf,AAA_ss_02.pdf,AAA_sd_01.pdf,BBB_ss_02.pdf, BBB_ss_4。 pdf,BBB_sd_01.pdf,cc_saa_01.pdf

我想添加一个输入名称值来自动分类项目。

<input name="AAA" .../> or <input name="BBB" .../> ........ 

PHP

if (strpos($names, 'AAA') !== false) { 
    echo 'AAA'; 
}elseif (strpos($names, 'BBB') !== false){ 
    echo 'BBB'; 
}elseif (strpos($names, 'ccc') !== false){ 
    echo 'ccc'; 
}else{ 
    echo ''; 
} 

我做出这样的函数

function contains($names, $string){ 
    if (strpos($names, $string) !== false) { 
     echo $string; 
    } 
} 

,但我不知道,如果是strpos我可以用一个正确的方法或有一个更好的。

感谢

+0

看来,$ name是一个字符串,而不是一个阵列。它是正确的? – kiks73

+0

你如何分类档案? – baldrs

+0

@ kiks73是的,你是对的,编辑。谢谢 – olo

回答

2

strpos是检查字符串A包含字符串B.这是非常快的正确方法。您可能希望将stripos用于不区分大小写的匹配。

但是,如果$names是一个数组,您必须迭代它并检查每个值。

1

如果你只是想制造出来的前3个字母的输入,你可以很快使用下面的操作:

foreach($names as $name): 
    echo '<input name="', substr($name, 0, 3) ,'" type="text"/>'; 
endforeach; 
+0

我想你必须爆炸原始字符串$ name才能在foreach语句之前构建数组$ name – kiks73

相关问题