Title: Menu array
Last modified: January 17, 2018

---

# Menu array

 *  [dimpa91](https://wordpress.org/support/users/dimpa91/)
 * (@dimpa91)
 * [8 years, 2 months ago](https://wordpress.org/support/topic/menu-array/)
 * This is function, that give multidimensional array (ierarhical) by menu ID. Need
   if you have custom html.
 * function get_menu_array ($menu = array()) {
    $response = array();
 *  while ($menu) {
    // first level if (!$response) { foreach ($menu as $key => 
   $item) { if ($item->menu_item_parent == 0) { $response[$item->db_id] = array(//’
   id’ => $item->db_id, ‘title’ => $item->title, ‘url’ => $item->url, ‘parent’ =
   > $item->menu_item_parent, ‘target’ => $item->target, ‘attr_title’ => $item->
   attr_title, ‘description’ => $item->description, ‘classes’ => $item->classes,‘
   xfn’ => $item->xfn, ‘children’ => array() ); unset($menu[$key]); } } } else {
   foreach ($menu as $key => $item) {
 *  $temp_arr = array (
    ‘id’ => $item->db_id, ‘title’ => $item->title, ‘url’ =>
   $item->url, ‘parent’ => $item->menu_item_parent, ‘target’ => $item->target, ‘
   attr_title’ => $item->attr_title, ‘description’ => $item->description, ‘classes’
   => $item->classes, ‘xfn’ => $item->xfn, ‘children’ => array() );
 *  insert_children_in_array ($response,$temp_arr);
 *  unset($menu[$key]);
    } } }
 *  return $response;
    }
 * function insert_children_in_array (&$arr, $temp_arr) {
    foreach ($arr as $key
   => $val ) {
 *  if ($key == $temp_arr[‘parent’]) {
    $arr[$key][‘children’][$temp_arr[‘id’]] 
   = array( ‘title’ => $temp_arr[‘title’], ‘url’ => $temp_arr[‘url’], ‘parent’ =
   > $temp_arr[‘parent’], ‘target’ => $temp_arr[‘target’], ‘attr_title’ => $temp_arr[‘
   attr_title’], ‘description’ => $temp_arr[‘description’], ‘classes’ => $temp_arr[‘
   classes’], ‘xfn’ => $temp_arr[‘xfn’], ‘children’ => array() );
 *  return $key;
    } else {
 *  if ($arr[$key][‘children’]) insert_children_in_array($arr[$key][‘children’],
   $temp_arr);
    } } }
 * Example: get_menu_array(get_field(‘array’,’options’))
    -  This topic was modified 8 years, 2 months ago by [dimpa91](https://wordpress.org/support/users/dimpa91/).

The topic ‘Menu array’ is closed to new replies.

 * ![](https://s.w.org/plugins/geopattern-icon/advanced-custom-fields-nav-menu-field_fdfdfd.
   svg)
 * [Advanced Custom Fields: Nav Menu Field](https://wordpress.org/plugins/advanced-custom-fields-nav-menu-field/)
 * [Frequently Asked Questions](https://wordpress.org/plugins/advanced-custom-fields-nav-menu-field/#faq)
 * [Support Threads](https://wordpress.org/support/plugin/advanced-custom-fields-nav-menu-field/)
 * [Active Topics](https://wordpress.org/support/plugin/advanced-custom-fields-nav-menu-field/active/)
 * [Unresolved Topics](https://wordpress.org/support/plugin/advanced-custom-fields-nav-menu-field/unresolved/)
 * [Reviews](https://wordpress.org/support/plugin/advanced-custom-fields-nav-menu-field/reviews/)

 * 0 replies
 * 1 participant
 * Last reply from: [dimpa91](https://wordpress.org/support/users/dimpa91/)
 * Last activity: [8 years, 2 months ago](https://wordpress.org/support/topic/menu-array/)
 * Status: not resolved