private function walker($keys, &$arr)
  {
    if (count($keys) == 0) {
      return true;
    }

    $current = array_shift($keys);

    return (is_array($arr) ?
          array_key_exists($current, $arr) :
          false)
        && ((is_array($arr[$current])) ?
          $this->walker($keys, $arr[$current]) :
          (count($keys) > 0 ? false : true));
  }