0

乱数を含むテキストの本文があります。

数字の配列を作成し、それらを処理し (各数字に基づいて表示する関連情報を検索します)、変更された配列を元のテキストの配列を取得したのと同じ場所に再挿入します。

これまでのところ、preg_match_all を使用して新しい配列を作成し、次にプロセスのために foreach を使用してから、これらの文字列を $replacement という新しい配列に挿入しています。

そのため、元のテキストの文字列を置き換えるために使用したい配列があります。問題は、位置の値に基づいて置換を計算したいということです。配列の内容に関係なく、文字列 1 は配列内の位置によって文字列 1 と一致します。

説明することが難しい。これが例です。

Original text: Hello 1 Hello 2 Hello 3

original array {
    [0] 1
    [1] 2
    [2] 3
}
replacement array {
    [0] One
    [1] Two
    [2] Three
}

したがって、必要なことを行うと、元の本文テキストは次のようになります。

Hello One Hello Two Hello Three

Hello One Hello Two Hello Three問題は、元の配列が次のようになっている場合でも、次のようにしたいということです。

original array {
    [0] 1
    [1] 1
    [2] 1
}
replacement array {
    [0] One
    [1] Two
    [2] Three
}

どうすればそれができますか?

4

2 に答える 2

1

あなたはこれを試していますか:-

$original_array=array(1,2,3);
foreach($original_array as $key=>$value) {
  echo str_replace($key, 'Hello',$key);
}

出力:- ハローハローハロー

于 2013-01-28T11:29:37.797 に答える
0

これはあなたが探しているものですか...???

$string="Hello 1 Hello 2 Hello 3";
    $rslt=preg_match_all('/(\d)/',$string,$matches);
    foreach ($matches[0] as $key=>$value){
        $digit= $key+1;
        $words=convertToWord($digit);
        $string= str_replace($value,$words,$string);
    }

echo $string;
function convertToWord($digit)
    {
        switch($digit)
        {
            case "0": return "zero";
            case "1": return "one";
            case "2": return "two";
            case "3": return "three";
            case "4": return "four";
            case "5": return "five";
            case "6": return "six";
            case "7": return "seven";
            case "8": return "eight";
            case "9": return "nine";
            case "": return "only";
        }
    }

出力:

こんにちは 1 こんにちは 2 こんにちは 3

デモ

于 2013-01-28T15:30:15.990 に答える