我有一行数字作为字符串:
$numbers = x, 5, 7, x, 9, 4, x, 3, 9, 5, x, ...
现在我想计算"持续时间" x之间。
' X'出现:
2x times after [2] numbers
1x times after [3] numbers
我无法弄清楚,php中哪种方法最能解决这个问题。
谢谢!
答案 0 :(得分:1)
如果数字总是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 )