字符串替换为数组中的变量
String Replace With Variable In Array
好的,如果我使用代码:
$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);
我是不是漏掉了什么?
有没有办法轻松做到这一点?
您需要将字符串转为数组,在这种情况下使用爆炸:
$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);
您可以使用分隔符将 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);
我建议您不要在每个字符串之间使用白色 space。如果您打算这样做,那么您可能需要 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);
好的,如果我使用代码:
$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);
我是不是漏掉了什么?
有没有办法轻松做到这一点?
您需要将字符串转为数组,在这种情况下使用爆炸:
$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);
您可以使用分隔符将 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);
我建议您不要在每个字符串之间使用白色 space。如果您打算这样做,那么您可能需要 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);