Подтвердить что ты не робот

PHP добавляет элементы в многомерный массив с помощью массива array_push

У меня есть многомерный массив $md_array, и я хочу добавить дополнительные элементы в sub-arrays recipe_type и кухню, исходящую из цикла, который считывает данные из таблицы.

В цикле я создаю новую таблицу $newdata для каждой строки:

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

а затем, используя 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' => ''
        )
      ) 
    );

Какой синтаксис для добавления нового элемента (массива) в массив recipe_type с array_push? Я никогда не мог окунуться в многомерные массивы, и я немного смущен.

4b9b3361

Ответ 1

если вы хотите добавить данные в порядке инкремента внутри вашего ассоциативного массива, вы можете сделать это:

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

// for recipe

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

//for cuisine

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

это добавится в рецепт или кухню в зависимости от того, что было последним индексом.

Нажатие массива обычно используется в массиве, когда у вас есть последовательный индекс: $arr [0], $ar [1].. вы не можете использовать его в ассоциативном массиве напрямую. Но поскольку ваш дополнительный массив имеет такой индекс, вы все равно можете использовать его как

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

Ответ 2

Как и в многомерном массиве, запись представляет собой другой массив, укажите индекс этого значения в array_push:

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