我有一個像這樣的字符串,如果行中的數字與行號不匹配,我想刪除行的換行符。這怎么可能 ?這是我的字符串: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 關注
- 206 瀏覽
添加回答
舉報
0/150
提交
取消