Php 查找位置字符串中字符串数组的第一个出现位置
PHP有一个函数Php 查找位置字符串中字符串数组的第一个出现位置,php,arrays,string,Php,Arrays,String,PHP有一个函数strpos(),用于查找字符串中给定值的第一个实例的位置。有没有一种方法可以用一组字符串的针来实现这一点?它将首次出现: $str = '1st and 3rd'; str_array_pos($str, array('st', 'nd', 'rd', 'th')) //would return 1 because of 'st' 要做到这一点,请使用==false进行测试。您可以自己编写一个: function str_array_pos($string, $array)
strpos()
,用于查找字符串中给定值的第一个实例的位置。有没有一种方法可以用一组字符串的针来实现这一点?它将首次出现:
$str = '1st and 3rd';
str_array_pos($str, array('st', 'nd', 'rd', 'th')) //would return 1 because of 'st'
要做到这一点,请使用
==false
进行测试。您可以自己编写一个:
function str_array_pos($string, $array) {
for ($i = 0, $n = count($array); $i < $n; $i++)
if (($pos = strpos($string, $array[$i])) !== false)
return $pos;
return false;
}
函数str\u array\u pos($string,$array){
对于($i=0,$n=count($array);$i<$n;$i++)
if(($pos=strpos($string,$array[$i]))!==false)
返回$pos;
返回false;
}
顺便说一下,示例中的返回值应该是0,而不是1,因为数组索引从0开始。您可以
foreach
在针数组上执行strpos()
并将结果保存在数组中。您正在查找所有结果的min()
。仔细想想,我认为这不适合您的情况@卡萨布兰卡-当你评论时注意到,你的方法绝对正确,有a+1。这并不总是返回任何针串第一次出现的位置。我同意斯文斯的观点,如果正确的一个之前的另一个数组元素也出现在字符串中,这仍然是不正确的。例如:str_array_pos('123',array('3','2','1')返回2而不是0,这是应该的。