array_push多维数组

时间:2012-12-13 11:03:55

标签: php arrays multidimensional-array

我有以下代码行

$return_array = array(
            $count_answers => array(
                    "name" => $domain,
                    "type" => $type,
                    "class" => $class,
                    "ttl" =>$ttl,
                    "data_lenght" => $data_l
                    )
     );

我想在数据长度之后使用以下代码

添加preference
array_push($return_array[$count_answers]['preference'], $preference);
  

警告:array_push()要求参数1为数组,在第367行的\ functions \ functions.php中给出null

为什么我的第一个参数不是数组?

5 个答案:

答案 0 :(得分:3)

$return_array索引的'preference'中没有元素。您可以使用此附加$preference

$return_array[$count_answers]['preference'][] = $preference;

或先用空数组初始化

$return_array[$count_answers]['preference'] = array();

如果您不想添加数组首选项,只需添加一个元素'preference',请附加

$return_array[$count_answers]['preference'] = $preference;

答案 1 :(得分:2)

您无需使用array_push,也可以直接添加该项目。

$return_array[$count_answers]['preference'] = $preference;

array_push不允许使用字符串作为索引,因此$preference位于$return_array[$count_answers][0]

在第367行,您没有提供数组,但是当前数组中的空元素。

答案 2 :(得分:1)

您应该在下面更正您的代码。

$return_array = array(
        $count_answers => array(
                "name" => $domain,
                "type" => $type,
                "class" => $class,
                "ttl" =>$ttl,
                "data_lenght" => $data_l
                )
 );

$preference['preference'] = "kkk";

只需更改

$return_array[$count_answers]['preference']

$return_array[$count_answers]
在array_push中

,如下所示

array_push($return_array[$count_answers], $preference);

答案 3 :(得分:0)

将array_push()与多维数组一起使用是一种矛盾。

PHP数组是分层的 - 而不是多维的。并且array_push添加具有指定值的编号元素。此外,在manual

中清楚地解释了array_push()的用法
  

我想在数据长度之后使用以下代码添加'preference'

为什么要用该代码执行此操作?它失败了,原因应该是显而易见的。

您应该使用的代码是:

$return_array[$count_answers]['preference']=$preference;

答案 4 :(得分:0)

foreach($arr_data_arrays as $key=>$line_arr) { // do an array looping at first

        $new_arr = array(); // create an array to be included on the second position
        $new_arr[0] = $line_arr;

        array_push($arr_data_arrays[$key][1],$new_arr);//include the whole array on the sec position
};

很容易就是这样!