【问题标题】:remove a key if value matches a pattern?如果值与模式匹配,则删除键?
【发布时间】:2010-02-21 01:46:53
【问题描述】:

我有一个包含字符串值的数组。

我想用正则表达式搜索一个模式,如果匹配,删除包含该值的键。

我将如何做到这一点?

【问题讨论】:

  • 输入数组是什么?期望的输出是什么?模式是什么?你试过什么?太模糊了,没有minimal reproducible example。不清楚。

标签: php regex


【解决方案1】:

preg_grep:http://php.net/manual/en/function.preg-grep.php

$a = array('foo' => 'xx', 'bar' => '12');
$b = preg_grep('~[a-z]~', $a, PREG_GREP_INVERT);
print_r($b);

【讨论】:

    【解决方案2】:
    foreach($array as $key => $value) {
        if(preg_match($pattern, $value)) {
            unset($array[$key]);
        }
    }
    

    【讨论】: