I am trying to merge multiple array with a foreach loop. The wp_get_nav_menu_items() function returns an array object by filling in the menu name. With my loop I want to add all the array items of the 3 menus together.
$menus = array( 'menu 1', 'menu 2', 'menu 3' );
foreach( $menus as $key => $menu ) {
$menu_object = wp_get_nav_menu_items( esc_attr( $menu ) );
$menu_objects[] = $menu_object;
}
But with my current code I get the following result:
Array
(
[0] => Array
(
[0] => WP_Post Object
(
[ID] => 397
)
)
[1] => Array
(
[0] => WP_Post Object
(
[ID] => 112
)
)
)
And I need this:
Array
(
[0] => WP_Post Object
(
[ID] => 397
)
[1] => WP_Post Object
(
[ID] => 112
)
[2] => WP_Post Object
(
[ID] => 136
)
)
So I have tried to use array_merge in the loop but this doesn't work.
$menus = array( 'menu 1', 'menu 2', 'menu 3' );
foreach( $menus as $key => $menu ) {
$menu_object = wp_get_nav_menu_items( esc_attr( $menu ) );
$menu_objects = array_merge( $menu_objects, $menu_object );
}