Php 从具有preg_match返回条件的数组创建新数组

Php 从具有preg_match返回条件的数组创建新数组,php,arrays,foreach,preg-match,Php,Arrays,Foreach,Preg Match,我想从只有preg_match true大小写的数组中创建一个新数组。我想从数组中创建一个包含字符串“banner”的新数组,并将其分配给new$banner=array(),这是我的数组($main_数组) 从上面的数组 foreach($main_array as $key=>$val){ if(preg_match('/banner/', $key) ) { echo $key."br />"; } } 这样我就可以得到只包含“banner”键的结果。但我想要一个像

我想从只有preg_match true大小写的数组中创建一个新数组。我想从数组中创建一个包含字符串“banner”的新数组,并将其分配给new$banner=array(),这是我的数组($main_数组)

从上面的数组

 foreach($main_array as $key=>$val){
 if(preg_match('/banner/', $key) )
 {
echo $key."br />";
 }
 }
这样我就可以得到只包含“banner”键的结果。但我想要一个像这样的新阵列

 $banner_array= array (
"banner_title"  => array("banner_title1" => "title1", "banner_title2" => "title2"),
"banner_img" => array("banner_img1" => "banner1.png", "banner_img2" => "banner2.png"),
"banner_link"   => array("banner_link1"=>"http://banner1.com, "banner_link2 =>"banner2.com")
));等等


提前感谢

这样做

foreach($main_array as $key=>$val){
    if(preg_match('/banner/', $key) )
    {
     $resultArray[$key]=$val;
    }
 }
那么:

foreach($main_array as $key => $val) {
    if(preg_match('/((banner_[a-z]+)\d+)/', $key, $m) ) {
        $banner_array[$m[2]][$m[1]] = $val;
    }
}
print_r($banner_array);

我已经取得了类似的成就。我想创建新的数组,比如
数组(“banner\u title”=>数组(“banner\u title1”=>“title1”,“banner\u title2”=>“title2”),“banner\u img”=>数组(“banner\u img1”=>“banner1.png”,“banner\u img2”=>“banner2.png”),“banner\u link”=>数组(“banner\u link1”=>”http://banner1.com,banner_link2=>“banner2.com”)
foreach($main_array as $key => $val) {
    if(preg_match('/((banner_[a-z]+)\d+)/', $key, $m) ) {
        $banner_array[$m[2]][$m[1]] = $val;
    }
}
print_r($banner_array);