我有一个像这样的字符串,如果行中的数字与行号不匹配,我想删除行的换行符。这怎么可能 ?这是我的字符串:1 //line12 //line23 //line35 //line44 //line55 //line66 //line7例如,在这个字符串中,第 4 行的值是 5,所以我必须省略它的中断并使其像 1 2 3 5 4 5 6这是我的代码:foreach(preg_split("/((\r?\n)|(\r\n?))/", $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++; }}但它不起作用或者我在某个地方错了......
2 回答
慕桂英4014372
TA贡献1871条经验 获得超13个赞
我已经为你写了一段代码。让我知道它是否满足您的目标。
$string = "1\n2\n3\n5\n4\n6\n5";
$line = explode("\n", $string);
$line2 = "";
$n = 1;
foreach($line as $v) {
if($n != $v) continue;
$line2 .= $v."\n";
$n++;
}
echo $line2;
杨__羊羊
TA贡献1943条经验 获得超7个赞
可能是这一行有问题 - $output[$key] = $linesArray[$key-1]。' '.$val。' '.$linesArray[$key+1];
// 因为第一次迭代的 key 是 0,所以它会像 $linesArray[-1]
- 2 回答
- 0 关注
- 167 浏览
添加回答
举报
0/150
提交
取消