【问题标题】:array_push multidimensional arrayarray_push 多维数组
【发布时间】:2012-12-13 11:03:54
【问题描述】:

我有以下代码行

$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

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

【问题讨论】:

  • 使用 array_push 将向您的阵列添加另一个“行”。您所做的只是将另一个属性添加到您的“行”中。

标签: php arrays multidimensional-array


【解决方案1】:

因为$return_array 中没有由'preference' 索引的元素。你可以在 $preference 后面加上这个

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

或者先用空数组初始化

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

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

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

【讨论】:

  • 好想。 $return_array[$count_answers]['preference'] = array(); 喜欢这部分。帮我。 +1。
【解决方案2】:

你不需要使用array_push,你可以直接添加项目。

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

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

在您的第 367 行,您提供的不是数组,而是当前数组中的一个空元素。

【讨论】:

  • 这也是我的问题的答案,就像来自 olaf thx jaudette 的那个:)
  • 哦,这正是我的问题。我有字符串索引,但不知道,这是不允许的。
【解决方案3】:

你应该用下面的代码更正你的代码。

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

【讨论】:

  • 如果是这样,那么我应该为此 +1。
【解决方案4】:

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

PHP 数组是分层的 - 不是多维的。并且 array_push 添加具有指定值的编号元素。此外,array_push() 的用法在manual 中有明确说明。

我想用以下代码在数据长度后添加“首选项”

您为什么要使用该代码执行此操作?它失败了,原因应该很明显。

您应该使用的代码是:

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

【讨论】:

    【解决方案5】:
    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
    };
    

    就这么简单!

    【讨论】:

      猜你喜欢
      • 2020-06-10
      • 1970-01-01
      • 2023-03-26
      • 2017-03-02
      • 2011-08-13
      • 1970-01-01
      • 1970-01-01
      • 2014-02-26
      • 2013-04-24
      相关资源
      最近更新 更多