如何在php中添加此数组中的另一个数组

时间:2017-09-06 14:34:59

标签: php arrays

很抱歉,如果这个标题看起来有误导性,我真的不知道如何提出这个问题。

基本上我有一个像这样的数组

    $array=
[
        'Drinks'=>[
              'Water'=> [
                 'ID'   => '4',
                 'Name'   => 'Clean-water',
                 'Value'  => '1',
                 'Made'   => 'Acient',
                 'Stackable' => true
               ],

               'Wine'=> [
                   'ID'   => '5',
                  'Name'   => 'Soff',
                  'Value'  => '5',
                  'Made'   => 'Acient',
                  'Stackable' => true
                ],

                'Vodka'=> [
                   'ID'   => '6',
                   'Name'   => 'Laudur',
                   'Value'  => '7',
                   'Made'   => 'Acient',
                   'Stackable' => true
                 ]



            ]
        ];

我想将另一个数组添加到' Vodka'喜欢像这样的价值观:

                'Vodka'=> [
                   'ID'   => '6',
                   'Name'   => 'Laudur',
                   'Value'  => '7',
                   'Made'   => 'Acient',
                   'Stackable' => true
                 ],[
                    'ID'   => '7',
                   'Name'   => 'Test',
                   'Value'  => '9',
                   'Made'   => 'New',
                   'Stackable' => true
                           ]

但是当我var_dump时,我不会把这个数组带到' Vodka'数组,它将创建[0]数组。

array (size=2)
  'Weapons' => 
    array (size=3)
      'Sword' => 
        array (size=5)
          'ID' => string '1' (length=1)
          'Name' => string 'Lurker' (length=6)
          'Value' => string '12' (length=2)
          'Made' => string 'Acient' (length=6)
          'Stackable' => boolean false
      'Shield' => 
        array (size=5)
          'ID' => string '2' (length=1)
          'Name' => string 'Obi' (length=3)
          'Value' => string '22' (length=2)
          'Made' => string 'Acient' (length=6)
          'Stackable' => boolean false
      'Warhammer' => 
        array (size=5)
          'ID' => string '3' (length=1)
          'Name' => string 'Clotch' (length=6)
          'Value' => string '124' (length=3)
          'Made' => string 'Acient' (length=6)
          'Stackable' => boolean false
  'Drinks' => 
    array (size=4)
      'Water' => 
        array (size=5)
          'ID' => string '4' (length=1)
          'Name' => string 'Clean-water' (length=11)
          'Value' => string '1' (length=1)
          'Made' => string 'Acient' (length=6)
          'Stackable' => boolean true
      'Wine' => 
        array (size=5)
          'ID' => string '5' (length=1)
          'Name' => string 'Soff' (length=4)
          'Value' => string '5' (length=1)
          'Made' => string 'Acient' (length=6)
          'Stackable' => boolean true
      'Vodka' => 
        array (size=5)
          'ID' => string '6' (length=1)
          'Name' => string 'Laudur' (length=6)
          'Value' => string '7' (length=1)
          'Made' => string 'Acient' (length=6)
          'Stackable' => boolean true
      0 => 
        array (size=5)
          'ID' => string '7' (length=1)
          'Name' => string 'Viru' (length=4)
          'Value' => string '8' (length=1)
          'Made' => string 'Acient' (length=6)
          'Stackable' => boolean true

我该如何解决这个问题,因为我真的想把它添加到伏特加'数组,但我不想创造另一种饮料'阵列

2 个答案:

答案 0 :(得分:4)

您需要做的是: -

$array['Drinks']['Vodka']=[
                $array['Drinks']['Vodka'], [
                'ID'   => '7',
               'Name'   => 'Test',
               'Value'  => '9',
               'Made'   => 'New',
               'Stackable' => true
            ]
        ];

print_r($array);

输出: - https://eval.in/856440

答案 1 :(得分:3)

$add = [
   'ID'   => '7',
   'Name'   => 'Test',
   'Value'  => '9',
   'Made'   => 'New',
   'Stackable' => true
];
$array['Drinks']['Vodka'] = array_merge([$array['Drinks']['Vodka']], [$add]);

https://eval.in/856419

array_merge() http://fi2.php.net/manual/en/function.array-merge.php