В PHP нет такой функции (AFAIK), которая делает то, что вы ищете, но вы можете использовать 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)
}
Демо