在数组而不是字符串上使用preg_replace

时间:2013-12-02 11:34:33

标签: php preg-replace

我在名为$ where的字符串上使用PHP preg_replace 函数:

$where = preg_replace( '/data\./', '', $where );

但是如果$ where是一个未知大小的数组,我想要实现相同的表达式替换。

我是否必须设置循环?或者是否有PHP功能来帮助我?

任何帮助都将不胜感激。

非常感谢

好的,这是我的输入数组:

array
  0 => null
  1 => null
  2 => 
    array
      'condition' => 
        array
          'column' => string 'start' (length=5)
          'operator' => string '>=' (length=2)
          'argvalue' => string '2013-11-21 00:00:00' (length=19)
  3 => 
    array
      'condition' => 
        array
          'column' => string 'start' (length=5)
          'operator' => string '<=' (length=2)
          'argvalue' => string '2013-11-21 23:59:59' (length=19)
  4 => null

这是我的操纵:

$where = preg_replace('/start\./', 'Alan', $where );

这是我的输出:

array
  0 => string '' (length=0)
  1 => string '' (length=0)
  2 => string 'Array' (length=5)
  3 => string 'Array' (length=5)
  4 => string '' (length=0)

这将返回一个Array to String转换错误。

由于

2 个答案:

答案 0 :(得分:1)

关于preg_replace

主题参数的PHP文档
  
      
  • <强>受试者

         

    字符串或包含要搜索和替换的字符串的数组。

         

    如果subject是一个数组,则对主题的每个条目执行搜索和替换,返回值也是一个数组。

  •   

答案 1 :(得分:0)

试试这段代码:

$text = array( "editpostiddata" ,"editpodatastcat", "ch114","ch112");

$result = preg_replace(array_fill(0, 4, "/data/i"),'', $text);
print_r($result);