Считать разные «пробелы» между данным числом

У меня есть строка с числами в виде строки:

$numbers = x, 5, 7, x, 9, 4, x, 3, 9, 5, x, ...

Теперь я хочу посчитать «продолжительность» между х.

«х» появляется:

2x times after [2] numbers
1x times after [3] numbers

Я просто не могу понять, какой метод в php является лучшим для решения этой проблемы.

Спасибо!

2

Решение

если числа всегда 0-9, вы можете удалить запятые и пробелы и использовать strpos, чтобы узнать, где находятся x. Взрывы не нужны.

$numbers = 'x, 5, 7, x, 9, 4, x, 3, 9, 5, x';
$string = str_replace(', ', '', $numbers);

$index = 0;
$previousPosition = 0;
$positionDifferences = array();

while($index < strlen($string)){
$index = strpos($string, 'x', $index);
$diff = $index - $previousPosition;
$positionDifferences[] = $diff;
$index++;
$previousPosition = $index;
}

сейчас $positionDifferences будет содержать массив со всеми различиями между вхождениями ‘x’. В этом примере: Array ( [0] => 0 [1] => 2 [2] => 2 [3] => 3 )

1

Другие решения

Других решений пока нет …