У меня есть строка с числами в виде строки:
$numbers = x, 5, 7, x, 9, 4, x, 3, 9, 5, x, ...
Теперь я хочу посчитать «продолжительность» между х.
«х» появляется:
2x times after [2] numbers
1x times after [3] numbers
Я просто не могу понять, какой метод в php является лучшим для решения этой проблемы.
Спасибо!
если числа всегда 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 )
Других решений пока нет …