我正在寻找一个PHP函数,可以返回字符串中某个字符的位置数组。输入参数"hello world",'o' 将返回 (4,7)。
谢谢。
谢谢。
$str = 'Hello World';
$letter='o';
$letterPositions = array_keys(array_intersect(str_split($str),array($letter)));
var_dump($letterPositions);
您可以查看这个http://www.php.net/manual/en/function.strpos.php#92849 或者 http://www.php.net/manual/en/function.strpos.php#87061,这些都是自定义的 strpos 函数,用于查找所有出现的位置。
preg_match_all
来获取子字符串模式的偏移量:$str = "hello world";
$r = preg_match_all('/o/', $str, $matches, PREG_OFFSET_CAPTURE);
foreach($matches[0] as &$match) $match = $match[1];
list($matches) = $matches;
unset($match);
var_dump($matches);
输出:
array(2) {
[0]=>
int(4)
[1]=>
int(7)
}
function searchPositions($text, $needle = ''){
$positions = array();
for($i = 0; $i < strlen($text);$i++){
if($text[$i] == $needle){
$positions[] = $i;
}
}
return $positions;
}
print_r(searchPositions('Hello world!', 'o'));
好的。