[英]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.