2012-11-16 69 views
0

我需要用逗號將內部的簡單文本替換爲數字。將文本替換爲數字php

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」。

這是最後的腳本,但在該即時通訊的一個越來越 「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'); 

回答

1

你可能不希望有這些字符串文字:

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

嘗試

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

當您使用單引號時,變量不會被解析,所以

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

Vs的

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

結果從:

Test1 
Test1, Test2 
Test1, Test2, Test3 

將是測試1的每個實例被替換爲10,等等 - 這樣:

10 
10, 11 
10, 11, 12 

更新

我明白你想要做什麼。當你傳遞數組到str_replace它處理,以便他們 - 這樣的時候,它看起來對Test1, Test2您已經更換Test1與10逆轉爲了做到你想要什麼......

$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; 
+0

是一樣的,我嘗試與''和沒有,也與「」謝謝 – Dar

+0

是的,我明白了,但我怎樣才能將Test1,Test2替換爲11? – Dar

+0

你是說你想'Test1,Test2'導致'11'和'Test1,Test2,Test3'導致'12'?我已添加更新來執行此操作... – Fenton