此问题已在此处有答案:
String replace all items in array PHP(3个答案)
5年前关闭。
我想改变数组中的最后一个“S”字母。我已经尝试了很多方法,但仍然行不通。
下面是我代码():
<?php
$array = array ("romeo/echos/julion/1991s/1992.jpg",
"romeo/echos/julion/1257s/1258.jpg",
"romeo/echos/julion/1996s/1965.jpg",
);
foreach ($array as $key => $value) {
if ($key == "romeo/echos/julion/'.*?'s/'.*?'.jpg")
$value="romeo/echos/julion/'.*?'l/'.*?'.jpg";
}
print_r($value);
?>
我想要的值看起来像这样:
Array ( [0] => romeo/echos/julion/1991l/1992.jpg
[1] => romeo/echos/julion/1257l/1258.jpg
[2] => romeo/echos/julion/1996l/1965.jpg
)
3条答案
按热度按时间aiqt4smr1#
$value
是数组元素的副本,因此赋值给它不会修改数组。如果使用引用变量,它会更新数组。此外,您没有正确测试值。首先,您使用了
==
,而您应该使用preg_match()
来测试正则表达式模式。并且您测试的是$key
而不是$value
(键只是索引0
、1
、2
等)。ezykj2lf2#
使用
str_replace()
输出:
yebdmbv43#
我已经测试了以下内容,它提供了您想要的确切输出。
产出: