2015-07-21 137 views
0

好吧,如果我使用的代碼:字符串替換爲變量數組

$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); 

我缺少的東西?

有沒有辦法輕鬆做到這一點?

+0

什麼是您預期的輸出? – KTAnj

回答

0

你需要把字符串中的陣列,使用爆炸在這種情況下:

$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); 
0

可以爆炸一個stringarray使用分隔:

$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);