PHP:替换数组中的换行符而不使用循环

PHP:替换数组中的换行符而不使用循环,php,Php,我需要替换此数组中的所有换行符 $fields = [ "hello", "new\nold", "world"]; 通过一个不带循环的| 我尝试了array\u walk(),但失败了 使用PHP 7.4最短、最快的解决方案非常简单: str_replace(“\n”、“|”、$fields); 检查一下 阅读的文档 注意:上述代码不包含任何显式循环。但是,str\u replace()的实现中存在一个循环。如果不使用至少一个循

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

$fields = [ "hello", "new\nold", "world"];
通过一个不带循环的
|

我尝试了
array\u walk()
,但失败了


使用PHP 7.4

最短、最快的解决方案非常简单:

str_replace(“\n”、“|”、$fields);
检查一下

阅读的文档


注意:上述代码不包含任何显式循环。但是,
str\u replace()
的实现中存在一个循环。如果不使用至少一个循环,则无法对列表的所有项执行操作


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

最短、最快的解决方案与以下内容一样简单:

str_replace(“\n”、“|”、$fields);
检查一下

阅读的文档


注意:上述代码不包含任何显式循环。但是,
str\u replace()
的实现中存在一个循环。如果不使用至少一个循环,则无法对列表的所有项执行操作

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

使用数组映射:

$fields = ["hello", "new\nold", "world"];

$replaced = array_map(function ($item) {
    return str_replace("\n", '|', $item);
}, $fields);
使用数组映射:

$fields = ["hello", "new\nold", "world"];

$replaced = array_map(function ($item) {
    return str_replace("\n", '|', $item);
}, $fields);

试试看。你说的新台词是什么意思?你是说这个“\”吗?@GazmendSahiti无论你使用什么解决方案,它仍然使用一个或多个循环。对于(;)或
foreach()
循环,它们不是显式的
,但它们仍然存在于函数
array\u map()
array\u walk()
str\u replace()
中,使用数组作为第三个参数等。尽管这些隐藏循环比显式循环快,这就是为什么我们喜欢在可能的情况下使用它们,而不是在PHP代码中使用显式循环。试试看。新行是什么意思?你是说这个“\”吗?@GazmendSahiti无论你使用什么解决方案,它仍然使用一个或多个循环。对于(;)
foreach()
循环,它们不是显式的
,但它们仍然存在于函数
array\u map()
array\u walk()
str\u replace()
中,使用数组作为第三个参数等。尽管这些隐藏循环比显式循环快,这就是为什么我们喜欢在可能的情况下使用它们,而不是在PHP代码中使用显式循环。向上投票:“如果subject是一个数组,那么搜索和替换将使用subject的每个条目执行,返回值也是一个数组”。这很简单。向上投票:“如果subject是一个数组,则对subject的每个条目执行搜索和替换,返回值也是一个数组”。