Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.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
如何在php中使用str replace_Php_Regex_Preg Replace Callback - Fatal编程技术网

如何在php中使用str replace

如何在php中使用str replace,php,regex,preg-replace-callback,Php,Regex,Preg Replace Callback,数组([0]=>Array([trigger]=>E[alttext]=>C)[1]=>Array([trigger]=>F[alttext]=>D)) 以及: 但是我想展示abcd 提前谢谢 我认为问题在于,您总是返回原始字符串进行替换-您需要进行累积更改。因此,在这里,它使用原始字符串设置$text,每次都会替换此字符串 $text = 'A B E F'; foreach ($trigger as $tdata) { $tr = $tdata->trigge

数组([0]=>Array([trigger]=>E[alttext]=>C)[1]=>Array([trigger]=>F[alttext]=>D))

以及:

但是我想展示
abcd


提前谢谢

我认为问题在于,您总是返回原始字符串进行替换-您需要进行累积更改。因此,在这里,它使用原始字符串设置
$text
,每次都会替换此字符串

   $text = 'A B E F';
   foreach ($trigger as $tdata) {
       $tr = $tdata->trigger;
       $ttext = $tdata->alttext;
       $text= str_replace($tr, $ttext, $text);
    }

    echo $text;
使用此方法时唯一需要注意的是,如果先前替换的文本是以后搜索并替换的文本。因此
E
->
F
F
->
D
将是
add

更新:

用你的测试数据

$trigger = Array ( Array ( "trigger" => "E", "alttext" => "C" ) , 
    Array ( "trigger" => "F", "alttext" =>"D" ) );
$text = 'A B E F';
foreach ($trigger as $tdata) {
    $tr = $tdata['trigger'];
    $ttext = $tdata['alttext'];
    $text= str_replace($tr, $ttext, $text);
}

echo $text;
考虑这一点(假设这些行与数据库行相似):

我们可以通过以下两种方法一次性完成:

您可以传递str_replace两个对应的查找和替换数组:

echo str_replace(array_column($rows, 0), array_column($rows, 1), 'A B E F');
输出:

A B C FA B E D
A B C D
A B C D
或者将strtr与数组(from=>to)一起使用(
['E'=>'C','F'=>'D']
):

输出:

A B C FA B E D
A B C D
A B C D

您必须构建find和replacement数组,并使用适合您的方法之一。注意str_replace和strtr replace的方式略有不同。

不确定如何得到结果,可以显示您的代码。
Array([0]=>Array([trigger]=>E[alttext]=>C)[1]=>Array([trigger]=>F[alttext]=>D))
my database structure如果您的基本数据是数组,请将以下行更改为使用
[]
-
$tr=$tdata['trigger']$ttext=$tdata['alttext'],我得到的输出是
A B C D
我做了但没有结果:(只有最后一个是更新的结果=A B E我添加了我测试过的内容。
数组([0]=>数组([trigger]=>E[alttext]=>C)[1]=>数组([trigger]=>F[alttext]=>D))
我的数据库结构
A B C D