2011-09-18 115 views
0

我想使用while循環將數據添加到數組,但它似乎將數據添加爲字符串而不是數組。循環/數組是我仍然在學習任何幫助將是偉大的。將數據添加到數組

$c = 0; 
$numberofcustom = 5; 
$defaults = array(
'title' => __('Follow Us!', 'smw'), 
'text' => '' 
); 
while ($c < $numberofcustom) { 
    $customnumber = $c + 1; 
    $defaults.=array(
     'custom' . $customnumber . 'name' => __('', 'smw'), 
     'custom' . $customnumber . 'icon' => __('', 'smw'), 
     'custom' . $customnumber . 'url' => __('', 'smw') 
    ); 
    $c++; 
} 

print_r($defaults); 

這個問題似乎是與從循環添加數據,如果我做了print_r只是,我只是得到「陣列」回來。

任何幫助,將不勝感激。

UPDATE

我決定,我並不需要一個多維數組,所以我用的建議之下,並與

while($c < $numberofcustom){ 
    $customnumber = $c+1; 
     $defaults['custom'.$customnumber.'name'] = __('', 'smw'); 
     $defaults['custom'.$customnumber.'icon'] = __('', 'smw'); 
     $defaults['custom'.$customnumber.'url'] = __('', 'smw'); 
    $c++;  
    } 

回答

1

不要這樣做:

$defaults.=array(

      'custom'.$customnumber.'name' => __('', 'smw'), 
      'custom'.$customnumber.'icon' => __('', 'smw'), 
      'custom'.$customnumber.'url' => __('', 'smw') 
      ); 

動態數組鍵幾乎是用動態名稱變量的那樣糟糕。改用另一個陣列級別:

$defaults[$customernumber] = array(
    'customname' => __('', 'smw'), 
    'customicon' => __('', 'smw'), 
    'customurl' => __('', 'smw'), 
); 
+0

謝謝,我根據你的回答編輯了我提出的解決方案,因爲我不需要多維數組。 – BandonRandon

+0

多維數組有什麼問題? –

+0

呃,沒有什麼真正讓它難以讓數據恢復(這是一個WordPress插件) – BandonRandon

1

您需要使用$arrayname[] = $var上來,這是對PHP語法追加新項目。請參閱this page

$defaults[] =array(
      'custom'.$customnumber.'name' => __('', 'smw'), 
      'custom'.$customnumber.'icon' => __('', 'smw'), 
      'custom'.$customnumber.'url' => __('', 'smw') 
      ); 
+0

感謝,似乎工作。有沒有一種方法可以將數組添加到數組中而不需要多維。我嘗試了'$ defaults [] ='custom ....'',那沒用。 – BandonRandon