如何在php中检查数组键与特定字符串的匹配
我需要获取具有类似如何在php中检查数组键与特定字符串的匹配,php,regex,Php,Regex,我需要获取具有类似'[['的模式的元素。 我已尝试使用数组\u key\u exists():- 如果(数组\u键\u存在(“[*PRODUCT\u IMAGE2*]”,$array)) 但我只想与'[' 在这方面,有谁能帮我使用preg\u grep()和array\u keys()如下:- $array = array( "[ci_id]" => '144309', "[NEW flag]" => 'No',
'[['
的模式的元素。
我已尝试使用数组\u key\u exists()
:-
如果(数组\u键\u存在(“[*PRODUCT\u IMAGE2*]”,$array))
但我只想与'['
在这方面,有谁能帮我使用preg\u grep()
和array\u keys()
如下:-
$array = array(
"[ci_id]" => '144309',
"[NEW flag]" => 'No',
"[[*PRODUCT_IMAGE_ANCHOR1*]]" => ,
"[[*PRODUCT_IMAGE2*]]" => '154154154'
);
输出:-
或者也可以使用strpos()
执行此操作:-
$matches = preg_grep ('/[.*?]/i', array_keys($array));
print_r($matches);
输出:-如果知道元素索引值,下面的代码将为带有double[[in]的键提供true
foreach($array as $key=>$val){
if(strpos($key,'[')!== false){
echo $key ."is matched with [*] pattern";
echo PHP_EOL;
}
}
如果您可以通过检查键来确定[[是否存在],那么下面的代码应该可以工作
$test = array("a"=>'a',"[a]"=>'a',"[[a]]"=>'a',"b"=>'b',"c"=>'c');
var_dump(array_key_exists("[[a]]", $test));
你有一些PHP代码是有效的吗?很抱歉,但不清楚你用无效的数组表示法到底想表达什么。谢谢你,我使用foreach。我得到了我所期望的。@KaifKhan使用第一个更简单的解决方案。顺便说一句,很高兴帮助你是的,第一个非常快,但我们只得到了正确的键。我们没有得到它的值。@kaif khan将这些键与$array一起使用并获取值。这太简单了,manOh!谢谢你的帮助,兄弟。
$test = array("a"=>'a',"[a]"=>'a','[[a]]'=>'a',"b"=>'b',"c"=>'c');
$values = array();
foreach ($test as $key=>$value) {
if (stripos('[[', substr($key, 0, 2)) !== false) {
array_push($values, $value);
}
}