我正在尝试使用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
,我只是回到了“数组”。
任何帮助都将不胜感激。
更新
我决定不需要多维数组,因此我使用了以下建议并提出了
while( $c < $numberofcustom){
$customnumber = $c+1;
$defaults['custom'.$customnumber.'name'] = __('', 'smw');
$defaults['custom'.$customnumber.'icon'] = __('', 'smw');
$defaults['custom'.$customnumber.'url'] = __('', 'smw');
$c++;
}
答案 0 :(得分:1)
您需要使用$arrayname[] = $var
,这是用于附加新项目的PHP语法。请参阅this page。
$defaults[] =array(
'custom'.$customnumber.'name' => __('', 'smw'),
'custom'.$customnumber.'icon' => __('', 'smw'),
'custom'.$customnumber.'url' => __('', 'smw')
);
答案 1 :(得分:1)
不要这样做:
$defaults.=array(
'custom'.$customnumber.'name' => __('', 'smw'),
'custom'.$customnumber.'icon' => __('', 'smw'),
'custom'.$customnumber.'url' => __('', 'smw')
);
动态数组键几乎与具有动态名称的变量一样糟糕。改为使用另一个数组级别:
$defaults[$customernumber] = array(
'customname' => __('', 'smw'),
'customicon' => __('', 'smw'),
'customurl' => __('', 'smw'),
);