$array = array(
"[ci_id]" => '144309',
"[NEW flag]" => 'No',
"[[*PRODUCT_IMAGE_ANCHOR1*]]" => ,
"[[*PRODUCT_IMAGE2*]]" => '154154154'
);
我需要获得具有'[['
模式的元素。
我尝试过使用array_key_exists()
: -
if (array_key_exists('[*PRODUCT_IMAGE2*]', $array))
但我想只与'['
任何人都可以帮助我吗
答案 0 :(得分:2)
将preg_grep()
与array_keys()
一起使用,如下所示: -
$matches = preg_grep ('/[.*?]/i', array_keys($array));
print_r($matches);
输出: - https://eval.in/817299
或者也可以使用strpos()
: -
foreach($array as $key=>$val){
if(strpos($key,'[')!== false){
echo $key ."is matched with [*] pattern";
echo PHP_EOL;
}
}
输出: - https://eval.in/817297
答案 1 :(得分:0)
以下代码将为double赋予true [true,如果您知道元素索引值
,则为[in]$test = array("a"=>'a',"[a]"=>'a',"[[a]]"=>'a',"b"=>'b',"c"=>'c');
var_dump(array_key_exists("[[a]]", $test));
如果您可以检查密钥以确定[[即使存在,那么下面的代码应该起作用
$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);
}
}