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

bik*_*y77 47 php multidimensional-array array-push

我有一个多维数组$ md_array,我想在子数组recipe_type中添加更多元素,并且从一个从表中读取数据的循环中添加美食.

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

$newdata =  array (
          'wpseo_title' => 'test',
          'wpseo_desc' => 'test',
          'wpseo_metakey' => 'test'
        );
Run Code Online (Sandbox Code Playgroud)

然后,使用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' => ''
        )
      ) 
    );
Run Code Online (Sandbox Code Playgroud)

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

Din*_*esh 73

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

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

// for recipe

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

//for cuisine

 $md_array["cuisine"][] = $newdata;
Run Code Online (Sandbox Code Playgroud)

这将根据最后一个索引添加到配方或美食中.

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

array_push($md_array["cuisine"],$newdata);
Run Code Online (Sandbox Code Playgroud)


dte*_*ech 16

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

array_push($md_array['recipe_type'], $newdata);
Run Code Online (Sandbox Code Playgroud)

  • 如何为“$md_array[$number]”提供自定义索引?我收到以下错误:“array_push() 期望参数 1 为数组,给定 null”。`$number` 变量来自 `foreach($numbers as $number)`,其中 `$numbers` 是一个简单的数字数组。例如,`$numbers = [1,2,3,4,5]`。啊,我从[这个答案](/sf/answers/148508601/)得到它。 (2认同)

jb_*_*jb_ 5

我知道这个话题很旧,但我在谷歌搜索后才发现它,所以......这是另一个解决方案:

$array_merged = array_merge($array_going_first, $array_going_second);
Run Code Online (Sandbox Code Playgroud)

这个对我来说看起来很干净,效果很好!