2012-12-31 45 views
1

======================================== ==========================================我可以使用while循環創建數組嗎

解決方案代碼:

$array = array(); 
$i = 1; 
while($i <= $instance['posts_num']) { 
    $array['tab'.$i.'_title'] = 'Category Heading'; 
    $array['tab'.$i.'_thumb'] = 'Insert link here'; 
    $array['tab'.$i.'_featured'] = 'Insert link here'; 
    $array['tab'.$i.'_description'] = 'Insert category desciption'; 
    $array['tab'.$i.'_link'] = 'Insert category link';   
$i += 1; 
} 

$instance = wp_parse_args((array)$instance, array(
    'heading' => 'Featured Area', 
    'title' => '', 
    'posts_num' => 1, 

    (array) $array 
)); 

========================================== ========================================

我該如何創建數組while循環。

我想在簡單的wordpress插件while循環的幫助下創建一個數組。我的代碼如下所示:

$instance = wp_parse_args((array)$instance, array(
     'heading' => 'Featured Area', 
     'title' => '', 
     'posts_num' => 1, 

     $array = array(); 

     $i = 1; 
     while($i <= $instance['posts_num']) { 

      $array[] = 'tab'.$i.'_title' => 'Category Heading', 
      $array[] = 'tab'.$i.'_thumb' => 'Insert link here', 
      $array[] = 'tab'.$i.'_featured' => 'Insert link here', 
      $array[] = 'tab'.$i.'_description' => 'Insert category desciption', 
      $array[] = 'tab'.$i.'_link' => 'Insert category link', 

     $i += 1; 
     } 

    )); 

我只是想確認我是否做正確。

我要生成數組是這樣的:

'tab1_title' => 'Category Heading', 
'tab1_thumb' => 'Insert link here', 
'tab1_featured' => 'Insert link here', 
'tab1_description' => 'Insert category desciption', 
'tab1_link' => 'Insert category link', 

'tab2_title' => 'Category Heading', 
'tab2_thumb' => 'Insert link here', 
'tab2_featured' => 'Insert link here', 
'tab2_description' => 'Insert category desciption', 
'tab2_link' => 'Insert category link', 
+0

你是不是在做正確。您可以通過查看您的頁面並在計算機視頻監視器上看到錯誤消息來確認。 –

+0

是的,你可以在結構中創建一個數組。你的錯誤是在你的$ array []代碼之後,而不是; –

+0

@Trimbitas:仔細一看,語法混亂 –

回答

1
while($i <= $instance['posts_num']) { 


      $array["tab{$i}_title"] = 'Category Heading'; 
      //...Repeat for others here. 


     $i += 1; 
     } 



array(4) { 
    ["tab0_title"]=> 
    string(16) "Category Heading" 
    ["tab1_title"]=> 
    string(16) "Category Heading" 
    ["tab2_title"]=> 
    string(16) "Category Heading" 
    ["tab3_title"]=> 
    string(16) "Category Heading" 
} 
+0

請改性區...它不是爲我工作:( –

+0

對我的作品,請再次檢查。 – Jason

2

你試圖把一個while循環中array()。這是行不通的。呼叫前的陣列結構,wp_parse_args,然後通過你的成品數組中。

+0

我該怎麼做? –

+0

@Jade:通過移動所述陣列(包括while循環中)的'wp_parse_args'呼叫之前整個構造。想象一下,你不調用該函數所有,並找出如何構建磁盤陣列,然後編寫代碼來做到這一點(這是程序員做的)。你可以使用'var_dump'來檢查你的結果。 –

+0

我添加了修改後的代碼,你認爲它好嗎? –

0

與您的代碼的問題是,您使用的是錯誤的語法/邏輯。

例子:

$array['tab'.$i.'_title'] = 'Category Heading'; 
$array['tab'.$i.'_thumb'] = 'Insert link here'; 
$array['tab'.$i.'_featured'] = 'Insert link here'; 
$array['tab'.$i.'_description'] = 'Insert category desciption'; 
$array['tab'.$i.'_link'] = 'Insert category link';