PHP 使用 array_push 向多维数组添加元素

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/16308252/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-25 10:54:23  来源:igfitidea点击:

PHP add elements to multidimensional array with array_push

phpmultidimensional-arrayarray-push

提问by bikey77

I have a multidimensional array $md_array and I want to add more elements to the sub-arrays recipe_type and cuisine coming from a loop that reads data from a table.

我有一个多维数组 $md_array ,我想向来自从表中读取数据的循环的子数组 recipe_type 和美食添加更多元素。

In the loop, I create a new table $newdata for each row:

在循环中,我为每一行创建一个新表 $newdata:

$newdata =  array (
          'wpseo_title' => 'test',
          'wpseo_desc' => 'test',
          'wpseo_metakey' => 'test'
        );

and then, using array_push()I need to append the $newdata arrays to the following multidimensional array:

然后,使用array_push()我需要将 $newdata 数组附加到以下多维数组:

$md_array= array (
     'recipe_type' => 
      array (
        18 => 
        array (
          'wpseo_title' => 'Salads',
          'wpseo_desc' => 'Hundreads of recipes for Salads',
          'wpseo_metakey' => ''
        ),
        19 => 
        array (
          'wpseo_title' => 'Main dishes',
          'wpseo_desc' => 'Hundreads of recipes for Main dishes',
          'wpseo_metakey' => ''
        )
      ),
     'cuisine' => 
      array (
        22 => 
        array (
          'wpseo_title' => 'Italian',
          'wpseo_desc' => 'Secrets from Sicily in a click',
          'wpseo_metakey' => ''
        ),
        23 => 
        array (
          'wpseo_title' => 'Chinese',
          'wpseo_desc' => 'Oriental dishes were never this easy to make',
          'wpseo_metakey' => ''
        ),
        24 => 
        array (
          'wpseo_title' => 'Greek',
          'wpseo_desc' => 'Traditional Greek flavors in easy to make recipies',
          'wpseo_metakey' => ''
        )
      ) 
    );

Whats the syntax for adding a new element (array) to the recipe_type array with array_push? I could never get my head around multidimensional arrays and I'm a bit confused.

使用array_push 向recipe_type 数组添加新元素(数组)的语法是什么?我永远无法理解多维数组,我有点困惑。

回答by Dinesh

if you want to add the data in the increment order inside your associative array you can do this:

如果要在关联数组中以递增顺序添加数据,可以执行以下操作:

$newdata =  array (
      'wpseo_title' => 'test',
      'wpseo_desc' => 'test',
      'wpseo_metakey' => 'test'
    );

// for recipe

$md_array["recipe_type"][] = $newdata;

//for cuisine

 $md_array["cuisine"][] = $newdata;

this will get added to the recipe or cuisine depending on what was the last index.

这将根据最后一个索引添加到食谱或美食中。

Array push is usually used in the array when you have sequential index: $arr[0] , $ar[1].. you cannot use it in associative array directly. But since your sub array is had this kind of index you can still use it like this

当您有顺序索引时,通常在数组中使用数组推送: $arr[0] , $ar[1] .. 不能直接在关联数组中使用它。但是由于您的子数组具有这种索引,您仍然可以像这样使用它

array_push($md_array["cuisine"],$newdata);

回答by dtech

As in the multi-dimensional array an entry is another array, specify the index of that value to array_push:

在多维数组中,一个条目是另一个数组,指定该值的索引到 array_push:

array_push($md_array['recipe_type'], $newdata);

回答by jb_

I know the topic is old, but I just fell on it after a google search so... here is another solution:

我知道这个话题很老,但我只是在谷歌搜索后就爱上了它,所以......这是另一个解决方案:

$array_merged = array_merge($array_going_first, $array_going_second);

This one seems pretty clean to me, it works just fine!

这个对我来说似乎很干净,它工作得很好!