0

ランダムな文字列のいくつかの値を置き換えて連結する必要があります。値を配列に格納します。

つまり

$search = array('dog', 'tree', 'forest', 'grass');
$randomString = "A dog in a forest";

1つ以上の配列値がランダムな文字列と一致する場合は、次のように置き換える必要があります。

$replacedString = "A @dog in a @forest";

誰かが私を助けることができますか?

どうも。

4

4 に答える 4

8
foreach (explode(' ', $randomString) as $word) {
  $replacedString .= in_array($word, $search) ? "@$word " : "$word ";
}

echo $replacedString;  // A @dog in a @forest
于 2012-05-28T10:28:45.367 に答える
1

あなたが正しくやろうとしていることを理解しているかどうかはわかりませんが、str_replace()関数を見てください

そして次のようなものを試してください

foreach($search as $string)
{
    $replacement[] = "@".$search;
}

$new_string = str_replace($search, $replacement, $randomString);
于 2012-05-28T10:33:45.343 に答える
1
foreach($search as $word)
{
  $randomString = str_replace($word,"@".$word,$randomString);
}
于 2012-05-28T10:30:41.390 に答える
0

これはあなたのために働くはずです:

$words = explode(" ", $randomString);

foreach($words as $word){
   if(in_array($word, $search)){
      $word = "@$word";
   }
}

$replacedString = implode(" ", $words);
于 2012-05-28T10:29:35.643 に答える