我想从数组中创建一个只有preg_match true case的新数组。从我的数组开始,我想创建一个包含字符串“banner”的新数组,并将其分配给新的$ banner = array(),这个是我的数组($ main_array)
[banner_title1] => title1
[banner_img1] => banner1.png
[banner_desc1] => bannerdesc1
[banner_link1] => http:/ab.com
[banner_title2] => title2
[banner_img2] => banner2.png.png
[banner_desc2] => sliderdesc
[banner_link2] => http://google.com
[portfolio_link1] => http://test.com
[portfolio_img1] => portfolio1.png
[portfolio_link2] => http://bb.dk
[portfolio_img2] => abc.png
从上面的数组
foreach($main_array as $key=>$val){
if(preg_match('/banner/', $key) )
{
echo $key."br />";
}
}
通过这个我可以得到结果只有包含“横幅”的键。但我想要一个像这样的新阵列。
$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")
);等等。
提前致谢
答案 0 :(得分:2)
执行此操作
foreach($main_array as $key=>$val){
if(preg_match('/banner/', $key) )
{
$resultArray[$key]=$val;
}
}
答案 1 :(得分:0)
怎么样:
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);