为了账号安全,请及时绑定邮箱和手机立即绑定

如何删除字符串中两行之间的特定换行符而不删除其他换行符?

如何删除字符串中两行之间的特定换行符而不删除其他换行符?

PHP
呼唤远方 2023-06-24 18:21:00
我有一个像这样的字符串,如果行中的数字与行号不匹配,我想删除行的换行符。这怎么可能 ?这是我的字符串: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;


查看完整回答
反对 回复 2023-06-24
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

可能是这一行有问题 - $output[$key] = $linesArray[$key-1]。' '.$val。' '.$linesArray[$key+1];

// 因为第一次迭代的 key 是 0,所以它会像 $linesArray[-1]


查看完整回答
反对 回复 2023-06-24
  • 2 回答
  • 0 关注
  • 167 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信