PHP array_push() - 将新数据推送到数组

时间:2011-04-28 17:45:46

标签: php arrays array-push

我有一个看起来像这样的数组:

Array
(
    [0] => Array
        (
            [1] => Array
                (
                    [name] => vrij
                    // ...
                )

            [2] => Array
                (
                    [name] => zat
                   // ...
                )
         )
)

我使用for循环构建此数组;但是,我需要再将4个'记录'推送到数组中,这在for循环中无法做到。

我希望在推送之后数组看起来像这样:

    Array
(      
    [0] => Array
    (
        [1] => Array
            (
                [name] => vrij
              // ...
            )

        [2] => Array
            (
                [name] => zat
               // ...
            )
         // ...
     )
    [1] => Array
    ( 
          [1] => Array
              (
               [name] => zon
               //...
              )
           [2] // etc
     )
)

四个新记录应该被推送到数组[1],所以我得到类似

的东西
$array[1][0], $array[1][1], etc. 0 1 2 3 contains the new data. 

说实话,我尝试了很多东西。我需要做四次推送,所以我尝试了一个for循环:

for($i = 0; $i < 4; $i++)
    {
        $day_info = $this->get_day_info($i, $data['init']['next_month'], $data['init']['current_year']);
        $push['name'] = $day_info['day_name'];
        array_push($data['dates'], $push);
    }

以及[],[1] [$ i]等所有其他类型的东西。有时它甚至会添加五个数组!我很困惑为什么它不会只添加[1] [1],[1] [2],...我可能错过了这里的东西。非常感谢。

如果不清楚,请告诉我,我会添加更多代码来更好地解释问题。

1 个答案:

答案 0 :(得分:2)

$extradates = array(1 => 'zon', 2 => 'maa');
$data['dates'][] = $extradates;

将使用新索引向数组添加2个额外日期。

虽然如果我看到你想要完成的任务,我认为可能有更好的方法。

以上情况虽然有效:)