Php 需要用字符串替换数组吗

Php 需要用字符串替换数组吗,php,Php,我有这个字符串:CO2+H2O+XO 我要说的是:CO2+H2O+NaO 我已经对此进行了很多研究,对于如何处理字符串和数组的混合,我感到困惑 $reactant = 'CO2 + H2O + XO'; $products = str_split($reactant); foreach ($products as $splitresult) { $splitresult = str_replace('X', 'Na', $splitresult); } echo $splitresu

我有这个字符串:
CO2+H2O+XO

我要说的是:
CO2+H2O+NaO

我已经对此进行了很多研究,对于如何处理字符串和数组的混合,我感到困惑

$reactant = 'CO2 + H2O + XO';

$products = str_split($reactant);

foreach ($products as $splitresult)
{
  $splitresult = str_replace('X', 'Na', $splitresult); 
}

echo $splitresult;

echo str_替换('X','Na',$反应物)

echo str_替换('X','Na',$反应物)

如果总是用加号将元素连接起来,则可以按如下方式分解字符串:

$parts = explode(' + ', $reactant);
然后在阵列周围循环

foreach($parts as &$part) {
    $part = str_replace('X', 'Na', $part);
}
然后,要显示结果,请使用加号将阵列重新内爆:

$reactant = implode(' + ', $parts);

如果总是用加号将元素连接起来,则可以按如下方式分解字符串:

$parts = explode(' + ', $reactant);
然后在阵列周围循环

foreach($parts as &$part) {
    $part = str_replace('X', 'Na', $part);
}
然后,要显示结果,请使用加号将阵列重新内爆:

$reactant = implode(' + ', $parts);

那就这样吧:

<?php
 $reactant = 'CO2 + H2O + XO';
 $reactant = str_replace('X', 'Na', $reactant);
?>

那就这样吧:

<?php
 $reactant = 'CO2 + H2O + XO';
 $reactant = str_replace('X', 'Na', $reactant);
?>

要将所有X替换为“Na”还是仅当它们位于“O”旁边时?我这样问是因为在我记忆中,当你处理元素时,还有其他元素包括X,如果你只是把它作为一个例子,而它不是真实的场景,那么请尽可能多地指定,以便我们能够计算出准确的结果。好的,当你在字符串中说X时,你的意思是
$someElement
。使用
str\u replace($searchFor,$replaceWith,$subject)可以非常轻松地处理此问题。
我正在处理分解反应。在这个特定的例子中,我不知道金属,我使用的是占位符,即X。它只涵盖AP级别,所以我不希望有人寻找X或Y元素。Str_-split似乎也比explode更有效。@Edwinner我能问一下为什么Str_-split对你来说比explode更有效吗?@Stanyer那是在我尝试你的之前。分解确实有效。是否要将所有X替换为“Na”或仅当它们位于“O”旁边时才替换?我这样问是因为在我记忆中,当你处理元素时,还有其他元素包括X,如果你只是把它作为一个例子,而它不是真实的场景,那么请尽可能多地指定,以便我们能够计算出准确的结果。好的,当你在字符串中说X时,你的意思是
$someElement
。使用
str\u replace($searchFor,$replaceWith,$subject)可以非常轻松地处理此问题。
我正在处理分解反应。在这个特定的例子中,我不知道金属,我使用的是占位符,即X。它只涵盖AP级别,所以我不希望有人寻找X或Y元素。Str_-split似乎也比explode更有效。@Edwinner我能问一下为什么Str_-split对你来说比explode更有效吗?@Stanyer那是在我尝试你的之前。爆炸确实有效。