2015-01-08 4 views
1

여러 배열을 foreach 루프로 병합하려고합니다. wp_get_nav_menu_items() 함수는 메뉴 이름을 채워 배열 객체를 반환합니다. 루프를 사용하여 3 가지 메뉴의 모든 배열 항목을 함께 추가하고 싶습니다. Foreach 배열 병합

$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_merge를 사용하는 것을 시도했다
Array 
(
    [0] => WP_Post Object 
     (
      [ID] => 397 
     ) 
    [1] => WP_Post Object 
     (
      [ID] => 112 
     ) 
    [2] => WP_Post Object 
     (
      [ID] => 136 
     ) 
) 

하지만, 이 작동하지 않습니다.

$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); 
} 

답변

0

을 :

$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); 
} 
0
단지 객체 얻기 위해이 줄을 수정하지 왜

:

$menu_object = wp_get_nav_menu_items(esc_attr($menu)); 

시도 뭔가 같은 : 만 배열로 $ menu_objects에게를 지정하는 데 필요한

$menu_object = wp_get_nav_menu_items(esc_attr($menu))[0]; 
+0

이 방법은 각 메뉴의 첫 번째 배열 만 가져옵니다. – Robbert