0

単純なテキストをコンマに置き換えて数字にする必要があります。

CSV File: 

Test1
Test1, Test2
Test1, Test2, Test3

phpコード

$text = "Test1";
$text1 = "Test1, Test2";
$text1 = "Test1, Test2, Test3";

$search = array('$text','$text1','$text2');
$replace = array('10','11','12');
$result = str_replace($search, $replace, $file);
echo "$result";

結果: "10","10, 11","10, 11, 12"

しかし、「10」、「11」、「12」を取得したい。

これは最終的なスクリプトですが、この im の 1 つで「10、12」が得られます

$text1 = "Test1";
$text2 = "Test2";
$text3 = "Test3";
$text4 = "Test1, Test2, Test3";
$text5 = "Test1, Test2";
$text6 = "Test1, Test3";
$text7 = "Test2, Test3";
$text8 = "Blank";
array($text8,$text7,$text6,$text5,$text4,$text3,$text2,$text1);
array('10','11','12','13','14','15','16','17');
4

1 に答える 1

1

おそらく、次の文字列リテラルは必要ありません。

$search = array('$text','$text1','$text2');

試す

$search = array($text,$text1,$text2);

一重引用符を使用すると、変数は解析されないため、

$text1 = 'Hello';
$text2 = '$text1';
echo $text2; // $text1

$text1 = 'Hello';
$text2 = $text1;
echo $text2; // Hello

結果:

Test1
Test1, Test2
Test1, Test2, Test3

Test1の各インスタンスが10に置き換えられるなど、次のようになります。

10
10, 11
10, 11, 12

アップデート

あなたがやろうとしていることがわかります。配列を渡すと、配列str_replaceが順番に処理されます。つまり、配列が検索されるまでに、Test1, Test2すでに10に置き換えられていますTest1。順序を逆にして、必要な処理を実行してください。

$text = "Test1";
$text1 = "Test1, Test2";
$text2 = "Test1, Test2, Test3";

$search = array($text2,$text1,$text); // reversed
$replace = array('12', '11', '10');// reversed
$result = str_replace($search, $replace, $file);
echo $result;
于 2012-11-16T16:37:15.083 に答える