Добавление данных в массив - PullRequest
0 голосов
/ 18 сентября 2011

Я пытаюсь добавить данные в массив, используя цикл 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++;       
    }

Ответы [ 2 ]

1 голос
/ 18 сентября 2011

Не делайте этого:

$defaults.=array(

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

ключи динамического массива почти так же плохи, как переменные с динамическим именем.Вместо этого используйте другой уровень массива:

$defaults[$customernumber] = array(
    'customname' => __('', 'smw'),
    'customicon' => __('', 'smw'),
    'customurl'  => __('', 'smw'),
);
1 голос
/ 18 сентября 2011

Вам нужно использовать $arrayname[] = $var, это синтаксис PHP для добавления новых элементов. Смотрите эту страницу .

$defaults[] =array(
            'custom'.$customnumber.'name' => __('', 'smw'),
            'custom'.$customnumber.'icon' => __('', 'smw'),
            'custom'.$customnumber.'url' => __('', 'smw')
             );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...