需要用字符串替换数组

时间:2013-12-16 08:50:03

标签: 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 $splitresult;

4 个答案:

答案 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 );