如果密钥包含(匹配)一个或多个子字符串,如何从PHP数组中删除键值对

cho*_*ata 3 php regex arrays filter

我有一个大型数组(为方便起见简化):

Array
(
    [last_name] => Ricardo 
    [first_name] => Montalban
    [sex] => Yes please
    [uploader_0_tmpname] => p171t8kao6qhj1132l14upe14rh1.jpg
    [uploader_0_name] => IMAG0114-1.jpg
    [uploader_0_status] => done
    [uploader_count] => 1
    [captcha_uid] => 155
)
Run Code Online (Sandbox Code Playgroud)

并希望删除键所在的所有键值对uploader_(可以是一系列)以及每次出现的键值对captcha_uid.

我在这里看到了一个有用的例子: 如果值与模式匹配,则删除一个键? 但我对正则表达式很糟糕.如何最佳地做到这一点?非常感谢您的观点.

JJJ*_*JJJ 12

在这种简单的情况下,您不需要正则表达式.在另一个问题中应用接受的答案:

foreach( $array as $key => $value ) {
    if( strpos( $key, 'uploader_' ) === 0 ) {
        unset( $array[ $key ] );
    }
}

unset( $array[ 'captcha_uid' ] );
Run Code Online (Sandbox Code Playgroud)