代码之家  ›  专栏  ›  技术社区  ›  PlayHardGoPro

在关联数组中插入新数组

  •  0
  • PlayHardGoPro  · 技术社区  · 7 年前

    我试图在多维/关联数组中插入一个新数组。但它也不起作用 array_push() 做。我目前的代码如下:

    $myJson = array(
      array (
        'id' => 1,
        'name' => 'Jane Doe', 
        'age' => 26
      ),
      array (
        'id' => 2,
        'name' => 'Josélito',
        'age' => 35
      )
    );
    
    
    $myAr = array(
      'id' => 5,
      'channel' => 'pimbaTv',
      'followers' => 15014
    );
    
    foreach($myJson AS $js) {
      $js['event'][] = $myAr;
      //$js['event'] = $myAr;
    }
    

      array (
        'id' => 1,
        'name' => 'Jane Doe', 
        'age' => 26,
        'event' => array(
           'id' => 5,
           'channel' => 'pimbaTv',
           'followers' => 15014
         );
      ),
      array (
        'id' => 2,
        'name' => 'Josélito',
        'age' => 35,
        'event' => array(
           'id' => 5,
           'channel' => 'pimbaTv',
           'followers' => 15014
         );
      )
    

    我尽我所能,但仍然没有解决办法。

    4 回复  |  直到 7 年前
        1
  •  1
  •   Madhur Bhaiya    7 年前

    您需要访问原始阵列 $myJson 使用 $key 从循环中,用于指定新值。默认情况下, $value 在foreach循环中,不通过引用传递。

    执行以下操作:

    foreach($myJson AS $key => $value) {
      $myJson[$key]['event'] = $myAr;
    }
    

    你也可以看到其他答案, utilizing passing by reference .

        2
  •  2
  •   Divyesh Prajapati    7 年前

    您可以在中对数组使用按引用传递 for 像这样循环。供参考 PHP Pass by reference in foreach

    foreach($myJson AS &$js) {
        $js['event'] = $myAr;
    }
    
        3
  •  1
  •   Philoupe    7 年前

    在新的php版本中,应该使用引用来编辑其内容。

    而不是:

    foreach($myJson AS $js) {
        $js['event'][] = $myAr;
    }
    

    你应该做:

    foreach($myJson AS &$js) {
        $js['event'][] = $myAr;
    }
    

    http://php.net/manual/en/control-structures.foreach.php

    “为了能够直接修改循环中的数组元素,请在$value前面加&号;。在这种情况下,将通过引用指定值。”

        4
  •  1
  •   Sigma    7 年前

    array_push()函数通常用于在数组中推送新数据,但必须有一个顺序索引:$arr[0],$ar[1]。。等。

    array_push($myJson["event"], $myAr);
    

    希望你更清楚。

    推荐文章