PHP:在没有循环的情况下替换数组中的换行符

WeS*_*See 1 php

我需要替换这个数组中的所有换行符

$fields = [ "hello", "new\nold", "world"];
Run Code Online (Sandbox Code Playgroud)

通过一个|没有循环。

我尝试过array_walk()但失败了。

使用 PHP 7.4

axi*_*iac 7

最短和最快的解决方案很简单:

str_replace("\n", '|', $fields);
Run Code Online (Sandbox Code Playgroud)

上网查一下。

阅读str_replace().


注意上面的代码不包含任何显式循环。但是,在 的实现中存在循环str_replace()。如果不使用至少一个循环,就无法对列表的所有项目进行操作。

PHP 代码中的显式循环与 PHP 内置函数中隐藏的循环之间的区别在于代码执行的速度。的代码str_replace()是用 C(一种生成快速可执行代码的语言)编写的,并且它已经被编译为运行它的硬件的可执行代码。PHP 代码中的一个循环需要被解析并编译成字节码,然后字节码由 PHP 解释器进行解释。任何内置 PHP 函数的代码都比 PHP 代码快得多。