array_push 在添加我的数组后添加另一个空数组

array_push adds another empty array after adding my array

我正在研究一种填充空数组的方法。

我有这个代码:

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

这个returns:

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

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

)

数组[0]不知从何而来,我不知道该怎么办。我试过了

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

但它不起作用。我怎样才能得到预期的结果:

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

如有疑问,请避免使用 array_push 并仅使用 [] 表示法。它的优点是自动创建不存在的子数组(所以不需要使用$array[$month] = array();):

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

如果您想使用 array_push,您需要先创建 enero 元素,然后再尝试将其推入其中:

$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
        )    
)

Demo on 3v4l.org