array_pu sh добавляет еще один пустой массив после добавления моего массива - PullRequest
1 голос
/ 22 марта 2020

Я работал над способом заполнения пустого массива.

У меня есть этот код:

$array = array();
$month = 'enero';
array_push($array, $array[$month] = array('01'));
array_push($array['enero'], '02');
print_r($array);

Это возвращает:

Array
(
    [enero] => Array
        (
            [0] => 01
            [1] => 02
        )

    [0] => Array
        (
            [0] => 01
        )

)

Массив [0] появляется из ниоткуда, и я не знаю, что делать. Я пытался

array_push($array['enero'], '02');

Но это не работает. Как я могу получить ожидаемый результат:

Array 
( 
    [enero] => Array 
        ( 
            [0] => 01 
            [1] => 02 
        )
)

1 Ответ

2 голосов
/ 22 марта 2020

Если сомневаетесь, избегайте array_push и просто используйте обозначение []. Он имеет преимущество автоматического создания подмассивов, которые не существуют (поэтому нет необходимости использовать $array[$month] = array();):

$array = array();
$month = 'enero';
$array[$month][] = '01';
$array[$month][] = '02';
print_r($array);

Если вы хотите использовать array_push, вам нужно создать * Элемент 1008 * перед попыткой вставить в него sh:

$array = array();
$month = 'enero';
$array[$month] = array();
array_push($array[$month], '01');
array_push($array[$month], '02');
print_r($array);

Вывод (для обеих частей кода):

Array
(
    [enero] => Array
        (
            [0] => 01
            [1] => 02
        )    
)

Демонстрация на 3v4l.org

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...