在多维数组上使用preg_match来返回键值数组 [英] Using preg_match on a multidimensional array to return key values arrays
本文介绍了在多维数组上使用preg_match来返回键值数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
$ data = array(
abc= >数组(
label=>abc,
value=>def,
type=>ghi,
,
def=>数组(
label=>mno,
value= >qrs,
type=>tuv,
desc=>wxyz,
),
)
我想用preg_match和foreach循环来执行$ data中包含的数组的搜索,返回键值对的嵌套数组。
解决方案
类似这样的事情?
<?php
$ data = array(
abc=> array(
label=>abc
value=>def,
type=>ghi,
desc=>jkl,
),
def=>数组(
label=>mno,
value=>qrs,
type=> tuv,
desc=>wxyz,
),
);
$ matches = array();
$ pattern =/ a / i; //包含通过数据
foreach($ data as $ key => $ value)的$ a
循环{
//遍历数据子数组下的每个键
foreach($ value为$ key2 => $ value2){
//检查是否匹配。
if(preg_match($ pattern,$ value2)){
// add to matches array。
$匹配[$ key] = $ value;
//匹配找到,所以从foreach中断到
break;
$ b echo'< pre>。print_r($ matches,true)。'< / pre>';
?>
I have an array that is structured as such:
$data = array(
"abc"=>array(
"label" => "abc",
"value" => "def",
"type" => "ghi",
"desc" => "jkl",
),
"def"=>array(
"label" => "mno",
"value" => "qrs",
"type" => "tuv",
"desc" => "wxyz",
),
);
I want to use preg_match with a foreach loop to perform a search on the arrays contained in $data and return the nested arrays of key value pairs.
解决方案
Something like this?
<?php
$data = array(
"abc"=>array(
"label" => "abc",
"value" => "def",
"type" => "ghi",
"desc" => "jkl",
),
"def"=>array(
"label" => "mno",
"value" => "qrs",
"type" => "tuv",
"desc" => "wxyz",
),
);
$matches = array();
$pattern = "/a/i"; //contains an 'a'
//loop through the data
foreach($data as $key=>$value){
//loop through each key under data sub array
foreach($value as $key2=>$value2){
//check for match.
if(preg_match($pattern, $value2)){
//add to matches array.
$matches[$key]=$value;
//match found, so break from foreach
break;
}
}
}
echo '<pre>'.print_r($matches, true).'</pre>';
?>
这篇关于在多维数组上使用preg_match来返回键值数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文