繁体   English   中英

preg_grep检查仅存在3个特定字母

[英]preg_grep to check only 3 specific letters exist

我正在尝试使用preg_grep返回仅与3个特定字母存在的键匹配的数组,即

数组如下:

$testArray = array(
'XXL' => array(),
'XL' => array(),
'L' => array(),
'M' => array(),
'S' => array(),
'XS' => array()
);

我想运行类似的东西(如果我可以使它工作:))

$res = preg_grep('[^XLS]', $testArray);

并获得没有“ M”键的返回数组,即

$res = array(
'XXL' => array(),
'XL' => array(),
'L' => array(),
'S' => array(),
'XS' => array()
);

我已经尝试了多个正则表达式,但是我要么获得所有密钥要么一无所获,有人可以帮忙吗?

非常感谢,基隆

preg_grep()不适用于多维数组。 您必须使用array_keys()分别获取密钥,并在其上应用preg_grep() 现在,将array_intersect_key()array_flip()结合使用以创建结果数组:

$keys = preg_grep('/[XLS]/', array_keys($testArray));
$result = array_intersect_key($testArray, array_flip($keys));

输出:

Array
(
    [XXL] => Array
        (
        )

    [XL] => Array
        (
        )

    [L] => Array
        (
        )

    [S] => Array
        (
        )

    [XS] => Array
        (
        )

)

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM