2013-12-12 68 views
0

我想從數組中創建一個新的數組,只有preg_match真正case.From我的數組我想創建一個新的數組,其中包含字符串「橫幅」,並分配它新的$旗幟=陣列(),這是我的數組($ main_array)從數組中創建一個新的數組與preg_match返回的條件

[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") 

);等等。

在此先感謝

回答

2

做這個

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

我已經實現了已位於類似的東西。我想創建一個新陣列,如 '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」 ))' – runner

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); 
相關問題