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的每个条目执行搜索和替换,返回值也是一个数组”。