-3

私は2つの配列を持っています:

 $search = array('A/OPTION-1/z','/OPTION-2/','/OPTION-3/','/OPTION-4/','/OPTION-5/','/OPTION-6/','/OPTION-7/','/OPTION-8/',
            '/OPTION-9/','/OPTION-10/','/OPTION-11/','/OPTION-12/','/OPTION-13/','/OPTION-14/','/OPTION-15/','/OPTION-16/','/OPTION-17/',
            '/OPTION-18/','/OPTION-19/');

と置き換えたい:

$replace = array('<b class="option" id="1" >OPTION 1</b><hr>',
            '<b class="option" id="2">OPTION 2</b><hr>',
            '<b class="option" id="3">OPTION 3</b><hr>',
            '<b class="option" id="4">OPTION 4</b><hr>',
            '<b class="option" id="5">OPTION 5</b><hr>',
            '<b class="option" id="6">OPTION 6</b><hr>',
            '<b class="option" id="7">OPTION 7</b><hr>',
            '<b class="option" id="8">OPTION 8</b><hr>',
            '<b class="option" id="9">OPTION 9</b><hr>',
            '<b class="option" id="10">OPTION 10</b><hr>',
            '<b class="option" id="11">OPTION 11</b><hr>',
            '<b class="option" id="12">OPTION 12</b><hr>',
            '<b class="option" id="13">OPTION 13</b><hr>',
            '<b class="option" id="14">OPTION 14</b><hr>',
            '<b class="option" id="15">OPTION 15</b><hr>',
            '<b class="option" id="16">OPTION 16</b><hr>',
            '<b class="option" id="17">OPTION 17</b><hr>',
            '<b class="option" id="18">OPTION 18</b><hr>',
            '<b class="option" id="19">OPTION 19</b><hr>');

応答は次のとおりです。

 OPTION-1 AX
 OPTION-11 AX
 OPTION-12 AX
 OPTION-13 AX

問題は、OPTION-1 を交換している間は正常に動作することですが、OPTION-11 を交換すると OPTION-11 が OPTION-1 に置き換えられ、OPTION-11 になるはずです。

4

4 に答える 4

1

この一般的なルールを使用して、任意のOPTION X文字列をキャッチして置き換えることができます。

preg_replace("/OPTION (\d+)/i", "<b class="option" id="$1">OPTION $1</b><hr>", $subject_string);
于 2013-02-27T12:16:18.733 に答える
0

配列の順序も変更することを提案するつもりでした

これを行うには、 http://php.net/manual/en/function.array-reverse.phpを使用できます。

于 2013-02-27T12:17:42.507 に答える
0

単語境界を使用 (つまり\b) :

$search = array('/\bOPTION-1\b/', '/\bOPTION-2\b/', ... );
于 2013-02-27T12:20:09.843 に答える
0

「置換」の順序を変更してみてください。最初に大きな数値のオプションの置換を実行します。

于 2013-02-27T12:14:56.657 に答える