我有这个字符串: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;
答案 0 :(得分:2)
echo str_replace('X','Na',$ reactant);
答案 1 :(得分:2)
如果您总是要使用加号加入元素,则可以将字符串分解为:
$parts = explode(' + ', $reactant);
然后循环数组
foreach($parts as &$part) {
$part = str_replace('X', 'Na', $part);
}
然后要显示结果,请使用加号:
将数组重新折叠在一起$reactant = implode(' + ', $parts);
答案 2 :(得分:1)
这是怎么回事:
<?php
$reactant = 'CO2 + H2O + XO';
$reactant = str_replace('X', 'Na', $reactant);
?>
如果您因为代码较长而真的想要拆分,则必须通过密钥进行设置,因为在每次循环传递后都会覆盖$splitresult
。这是一个临时变量。这是正确的方法:
<?php
$reactant = 'CO2 + H2O + XO';
$products = str_split($reactant);
foreach($products as $i=>$splitresult)
{
$products[$i] = str_replace('X', 'Na', $splitresult) ;
}
$reactant = implode('',$products);
?>
答案 3 :(得分:0)
<?php
$reactant = 'CO2 + H2O + XO';
$products = explode($reactant, ' + ');
foreach($products as $key => $splitresult)
{
$products[ $key ] = str_replace('X', 'Na', $splitresult);
}
print_r( $products );