如果我使用以下代码,则可以:
$phrase = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits", "vegetables", "fiber");
$yummy = array("pizza", "beer", "ice cream");
$newphrase = str_replace($healthy, $yummy, $phrase);
// Provides: You should eat pizza, beer, and ice cream every day但是,如果我要替换的单词列表是一个变量,该怎么办。
$sample1 = "fruits, vegetables, fiber";
$sample2 = "pizza, beer, ice cream";
$phrase = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array($sample1);
$yummy = array($sample2);
$newphrase = str_replace($healthy, $yummy, $phrase);
// Provides: You should eat fruits, vegetables, and fiber every day.如果我使用:
$sample1 = '"fruits", "vegetables", "fiber"';
$sample1 = '"pizza", "beer", "ice cream"';
$phrase = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array($sample1);
$yummy = array($sample2);
$newphrase = str_replace($healthy, $yummy, $phrase);我是不是遗漏了什么?
有什么容易做到的方法吗?
发布于 2015-07-21 22:22:06
您需要将字符串提交给数组,在本例中使用need:
$sample1 = "fruits, vegetables, fiber";
$sample2 = "pizza, beer, ice cream";
$phrase = "You should eat fruits, vegetables, and fiber every day.";
$healthy = explode(',',$sample1);
$yummy = explode(',',$sample2);
$newphrase = str_replace($healthy, $yummy, $phrase);发布于 2015-07-21 22:24:26
您可以使用分隔符将string分解为array:
$sample1 = "fruits, vegetables, fiber";
$sample2 = "pizza, beer, ice cream";
$phrase = "You should eat fruits, vegetables, and fiber every day.";
$healthy = explode(",", $sample1);
$yummy = explode(",", $sample2);
$newphrase = str_replace($healthy, $yummy, $phrase);不过,我建议您在每个字符串之间不要有空白。如果您要这样做,那么您可能希望trim()每个值。array_map()在这里很有用,因为您可以将一个函数映射到如下所示的每个值:
$healthy = array_map('trim', explode(",", $sample1));所以整件事会更像是:
$sample1 = "fruits , vegetables,fiber";
$sample2 = "pizza, beer,ice cream";
$phrase = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array_map('trim', explode(",", $sample1));
$yummy = array_map('trim', explode(",", $sample2));
$newphrase = str_replace($healthy, $yummy, $phrase);https://stackoverflow.com/questions/31550591
复制相似问题