0

私はリトアニアの曲用のためのそのようなコードを持っています:

<?php
    $word               = "namas";
    $string             = str_repeat("$word ", 4);
    $patterns           = array();
    $patterns[0]        = '/as/';
    $patterns[1]        = '/as/';
    $patterns[2]        = '/as/';
    $patterns[3]        = '/as/';
    $replacements       = array();
    $replacements[0]    = 'as';
    $replacements[1]    = 'o';
    $replacements[2]    = 'ui';
    $replacements[3]    = 'a';
    ksort($patterns);
    ksort($replacements);
    echo preg_replace($patterns, $replacements, $string);
?>

どうすれば別の方法で交換できますか?そのような結果が欲しいのですが、 namas namo namui nama でも、どこにでも「namonamonamo」があります。

4

2 に答える 2

0

ループのように考えて、

  1. に変更asas、文字列は「namas namasnamasnamas」になりました
  2. 文字列を「namonamonamonamo」に変更asしますo
  3. に変更asui、一致しません('namo namo namo namo'が残ります)
  4. に変更aso、一致しません('namo namo namo namo'が残ります)
于 2012-03-25T16:57:26.290 に答える
0

これは私があなたが望むと思うことをします:

<?php
$word ="namas";
$patterns = array();
$patterns[0] = '/as/';
$patterns[1] = '/as/';
$patterns[2] = '/as/';
$patterns[3] = '/as/';

$replacements = array();
$replacements[0] = 'as';
$replacements[1] = 'o';
$replacements[2] = 'ui';
$replacements[3] = 'a';

ksort($patterns);
ksort($replacements);

foreach ($patterns as $idx => $pat)
{
    echo " " . preg_replace ($pat, $replacements[$idx], $word);
}

?>

これはさらに次のように簡略化されます。

<?php
$word ="namas";
$pattern = '/as/';

$replacements = array();
$replacements[0] = 'as';
$replacements[1] = 'o';
$replacements[2] = 'ui';
$replacements[3] = 'a';

foreach ($replacements as $replace)
{
    echo " " . preg_replace ($pattern, $replace, $word);
}

?>  
于 2012-03-25T17:02:30.403 に答える