2013-01-11 45 views
0

我有這種陣列如下:構建陣列出來的另一個具有不同結構

Array ( 
[pageid_01_page_name] => first Page 
[pageid_01_Style] => full 
[thePageID_1] => pageid_01 
[theElementID_1] => 1 
[source_type_1] => slideshow_box 
[pageid_01_1_slideshow_box] => Array ([layout] => one 
            [content_id] => Array ([0] => 856) 
            [slideshow_timeout] => 8 
            [slideshow_height] => 400 
            [image_resize] => on 
            [image_crop] => on 
            [list_orderby] => date 
            [list_order] => DESC 
            [slideshow_buttons] => on) 

[thePageID_2] => pageid_01 
[theElementID_2] => 2 
[source_type_2] => banner_box 
[pageid_01_2_banner_box] => Array ([layout] => one 
            [text] => test 
            [button_text] => Button Text 
            [button_link] => a link) 

      ) 

我需要建立另一個陣列出來的一個以上,具有這樣的結構:

Array ( 
    [pages] => Array ([pageid_01] => stdClass Object 
         ([pageName] => first Page 
         [style] => full 
         [pageID] => pageid_001 

         [contents] => Array ( 
         [2] => stdClass Object ( 
          [element_id] => 1 
          [content_type] => slideshow_box 
          [layout] => one 
          [content_id] => Array ([0] => 856) 
          [slideshow_timeout] => 8 
          [slideshow_height] => 400 
          [image_resize] => on 
          [image_crop] => on 
          [list_orderby] => date 
          [list_order] => DESC 
          [slideshow_buttons] => on 
               ) 
         [3] => stdClass Object ( 
         [element_id] => 2 
         [content_type] => banner_box 
         [layout] => one 
         [text] => test 
         [button_text] =>Button text 
         [button_link] => a link 
              ) 
     ) 

更多的細節更新時間:

我建立的第二陣列,現在的方式是這樣的:

$pages = new \stdClass(); 
$i=0; 
$page=0; 
$thepagename = '_page_name'; 

if(isset($thepagename)) 
{ 
    if(in_array($thepagename, $AllPages)) 
    { foreach($AllPages as $k => $v) { 
    $page = str_replace('_page_name','',$k); 
    @$pages->pages[$page]->pageID = $page; 
    @$pages->pages[$page]->pageName  = $v; 
    if(stristr($k, 'theElementID_') == true) {   
        $element_id = $v; 
       } 
    if(stristr($k, '_slideshow_box') == true) { 
     $i++; 
     @$pages->pages[$page]->contents[$i]->element_id   = $element_id; 
     $pages->pages[$page]->contents[$i]->content_type  = 'slideshow_box'; 
     $pages->pages[$page]->contents[$i]->layout    = $v["layout"]; 
     $pages->pages[$page]->contents[$i]->content_id   = @$v["content_id"]; 
     $pages->pages[$page]->contents[$i]->slideshow_timeout  = $v["slideshow_timeout"]; 
     $pages->pages[$page]->contents[$i]->slideshow_height  = $v["slideshow_height"]; 
     $pages->pages[$page]->contents[$i]->image_resize  = $v["image_resize"]; 
     $pages->pages[$page]->contents[$i]->image_crop   = $v["image_crop"]; 
     $pages->pages[$page]->contents[$i]->list_orderby  = $v["slideshow_orderby"]; 
     $pages->pages[$page]->contents[$i]->list_order   = $v["slideshow_order"]; 
     $pages->pages[$page]->contents[$i]->slideshow_buttons  = $v["slideshow_buttons"]; 
    } 

    } 
    } 
} 

等等.... 但這種方式需要大量的編碼,而內容可以更多更多......

回答

1

首先,你可以循環您的陣列,讓所有的值和鍵第二個,構建另一個數組,將所有鍵和值推入新數組。就像

$new_array = ($new_array,values1,values2,.......); 

希望它可以幫助你

+0

它比這更復雜一點我想是因爲我需要重新安排新的陣列中(蒙山出這些價值觀知道子陣列將有多少是(爲頁面的內容)... – fazary