【问题标题】:Replacing Some Array Values替换一些数组值
【发布时间】:2018-03-30 08:42:41
【问题描述】:

我想将数组中的“S”更改为“l”。但它不会工作。 请帮我解决这个问题。

这是我的代码:

<?php
    $array = array (
        "romeo/echo/julion/1991s/1992.jpg",
        "romeo/echo/julion/1257s/1258.jpg",
        "romeo/echo/julion/1996s/1965.jpg",
    );
    foreach($array as $key => $value){
        if($key == "romeo/echo/julion/'.*?'s/'.*?'.jpg") $value="romeo/echo/julion/'.*?'l/'.*?'.jpg";
    }
    print_r($value);
?>

【问题讨论】:

  • str_replace 函数。

标签: php arrays regex


【解决方案1】:

1.你需要使用str_replace()call by reference

foreach ($array as &$value) {
  $value = str_replace('s/','l/',$value);
}

print_r($array);

输出:- https://eval.in/981246

2.或者你可以直接去array_map()

<?php
function strReplace($n)
{
    return(str_replace('s/','l/',$n));
}

$array = array ("romeo/echo/julion/1991s/1992.jpg",
                "romeo/echo/julion/1257s/1258.jpg",
                "romeo/echo/julion/1996s/1965.jpg",
);
$final_array = array_map("strReplace", $array);
print_r($final_array);
?>

输出:- https://eval.in/981225

3 或者preg_replace()

$array = preg_replace('/(\d{4})(s\/)/', '$1l/', $array);

输出:- https://eval.in/981245

【讨论】:

  • 我已经删除了我的答案。如果我将它(我的意思是我已删除的最后一个答案)发布到另一个问题,这可以吗?
  • @RheyzaVirgiawanD'首先,您可以随时提出新问题。但是请尝试清楚地澄清您的问题,即您到底想要什么,什么不起作用?另外,不要忘记也发布您的代码工作。谢谢
【解决方案2】:

你可以这样试试,

$array = array ("romeo/echo/julion/1991s/1992.jpg",
                "romeo/echo/julion/1257s/1258.jpg",
                "romeo/echo/julion/1996s/1965.jpg",
);


$array = preg_replace("/(s)(?=\/)/", "l", $array);
print '<pre>';
print_r($array);
print '</pre>';

输出:

Array
(
    [0] => romeo/echo/julion/1991l/1992.jpg
    [1] => romeo/echo/julion/1257l/1258.jpg
    [2] => romeo/echo/julion/1996l/1965.jpg
)

演示: https://eval.in/981216

【讨论】:

    【解决方案3】:
    $array = [
        "romeo/echo/julion/1991s/1992.jpg",
        "romeo/echo/julion/1257s/1258.jpg",
        "romeo/echo/julion/1996s/1965.jpg",
    ];
    
    $array = preg_replace('/(\d{4})(s)/', '$1l', $array);
    

    结果:

    array(3) {
        [0] =>
        string(32) "romeo/echo/julion/1991l/1992.jpg"
        [1] =>
        string(32) "romeo/echo/julion/1257l/1258.jpg"
        [2] =>
        string(32) "romeo/echo/julion/1996l/1965.jpg"
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-09
      • 2012-06-14
      • 2022-10-04
      • 1970-01-01
      • 2019-11-14
      • 1970-01-01
      • 2014-03-09
      • 2011-03-01
      相关资源
      最近更新 更多