Foreach 数组合并
Foreach array merge
我正在尝试将多个数组与 foreach 循环合并。 wp_get_nav_menu_items()函数returns一个数组对象,填写菜单名称。在我的循环中,我想将 3 个菜单的所有数组项添加在一起。
$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;
}
但使用我当前的代码,我得到以下结果:
Array
(
[0] => Array
(
[0] => WP_Post Object
(
[ID] => 397
)
)
[1] => Array
(
[0] => WP_Post Object
(
[ID] => 112
)
)
)
我需要这个:
Array
(
[0] => WP_Post Object
(
[ID] => 397
)
[1] => WP_Post Object
(
[ID] => 112
)
[2] => WP_Post Object
(
[ID] => 136
)
)
所以我尝试在循环中使用 array_merge 但这不起作用。
$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 );
}
为什么不直接修改这一行来获取对象:
$menu_object = wp_get_nav_menu_items( esc_attr( $menu ) );
试试这样的东西:
$menu_object = wp_get_nav_menu_items( esc_attr( $menu ) )[0];
我只需要将 $menu_objects 指定为数组:
$menus = array( 'menu 1', 'menu 2', 'menu 3' );
$menu_objects = array();
foreach( $menus as $key => $menu ) {
$menu_object = wp_get_nav_menu_items( esc_attr( $menu ) );
$menu_objects = array_merge( $menu_objects, $menu_object );
}
我正在尝试将多个数组与 foreach 循环合并。 wp_get_nav_menu_items()函数returns一个数组对象,填写菜单名称。在我的循环中,我想将 3 个菜单的所有数组项添加在一起。
$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;
}
但使用我当前的代码,我得到以下结果:
Array
(
[0] => Array
(
[0] => WP_Post Object
(
[ID] => 397
)
)
[1] => Array
(
[0] => WP_Post Object
(
[ID] => 112
)
)
)
我需要这个:
Array
(
[0] => WP_Post Object
(
[ID] => 397
)
[1] => WP_Post Object
(
[ID] => 112
)
[2] => WP_Post Object
(
[ID] => 136
)
)
所以我尝试在循环中使用 array_merge 但这不起作用。
$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 );
}
为什么不直接修改这一行来获取对象:
$menu_object = wp_get_nav_menu_items( esc_attr( $menu ) );
试试这样的东西:
$menu_object = wp_get_nav_menu_items( esc_attr( $menu ) )[0];
我只需要将 $menu_objects 指定为数组:
$menus = array( 'menu 1', 'menu 2', 'menu 3' );
$menu_objects = array();
foreach( $menus as $key => $menu ) {
$menu_object = wp_get_nav_menu_items( esc_attr( $menu ) );
$menu_objects = array_merge( $menu_objects, $menu_object );
}