Category menu that filters out empty categories

I had an error in the above code. $key used in both for loops.

Working code for filtering empty product categories out of menu items:

function exclude_empty_cat_menu_items( $items, $menu, $args ) {
  // Get a list of product categories that excludes empty categories
  $non_empty_categories = get_categories(array('taxonomy' => 'product_cat'));
  // Iterate over the menu items
  foreach ( $items as $key => $item ) {
    $is_empty = true;
    // check current item id is in the non-empty categories array
    foreach ( $non_empty_categories as $key2 => $cat )
      if ($item->title === $cat->name) 
        $is_empty = false;
      // if it is empty remove it from array
      if ($is_empty) unset($items[$key]);
  }
  return $items;
}
add_filter( 'wp_get_nav_menu_items', 'exclude_empty_cat_menu_items', null, 3 );