Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Replace 将文本替换为数字php_Replace_Str Replace - Fatal编程技术网

Replace 将文本替换为数字php

Replace 将文本替换为数字php,replace,str-replace,Replace,Str Replace,我需要用逗号替换一个简单的文本 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($

我需要用逗号替换一个简单的文本

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”


您可能不希望使用以下字符串文字:

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

使用单引号时,不会解析变量,因此

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

结果来自:

Test1
Test1, Test2
Test1, Test2, Test3
Test1的每个实例都将替换为10,以此类推-因此:

10
10, 11
10, 11, 12
更新

我明白你想做什么了。当您将数组传递到
str\u 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;

同样,我尝试了使用“”和不使用“”,也尝试了使用“”,谢谢。我理解,但是我如何才能将Test1、Test2替换为11?您是说希望
Test1、Test2
生成
11
Test1、Test2、Test3
生成
12
?我添加了一个更新来实现这一点……也许可以使用preg_replace?是的,我希望Test1、Test2为11,Test1、Test2、Test3为12
Test1
Test1, Test2
Test1, Test2, Test3
10
10, 11
10, 11, 12
$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;