>我有一个这样的字符串,如果行中的数字与行号不匹配,我想删除行的分隔符。怎么可能?
这是我的字符串:
1 //line1
2 //line2
3 //line3
5 //line4
4 //line5
5 //line6
6 //line7
例如,在这个字符串中,第 4 行的值是 5,所以我必须省略它的中断并使其像
1
2
3 5
4
5
6
这是我的代码:
foreach(preg_split("/((r?n)|(rn?))/", $string) as $line){
if ($line != __LINE__){
//remove the break and I'm stuck here...
}
}
任何解决方案?提前感谢...
更新: 我还尝试将其转换为如下所示的数组:
$linesArray = explode("n", $string);
foreach($linesArray as $key => $val){
if(($key+1) != $val){
$output[$key] = $linesArray[$key-1].' '.$val.' '.$linesArray[$key+1];
$o_line++;
}else{
$output[$key] = $val;
$o_line++;
}
}
但它不起作用,或者我在某处错了...
我已经为你写了一个代码。让我知道它是否符合您的目标。
$string = "1n2n3n5n4n6n5";
$line = explode("n", $string);
$line2 = "";
$n = 1;
foreach($line as $v) {
if($n != $v) continue;
$line2 .= $v."n";
$n++;
}
echo $line2;
可能是这条线有问题—— $output[$key] = $linesArray[$key-1]。".$val." ".$linesArray[$key+1];
由于第一次迭代的键为 0,所以它就像 $linesArray[-1]