protected function walk(array $array, $path = '') {
			foreach ($array as $k => $v)
				if (!is_array($v) || !(bool)count(array_filter(array_keys($v), 'is_string')))
					$this->data[$path . $k] = $v;
				else
					$this->walk($v, $path . $k . '.');
		}
protected function walk(array $array, $path = '') {
			foreach ($array as $k => $v)
				if (!is_array($v) || !(bool)count(array_filter(array_keys($v), 'is_string')))
					$this->data[$path . $k] = $v;
				else
					$this->walk($v, $path . $k . '.');
		}
protected function walk ( array $ array , $ path = '' ) { foreach ( $ array as $ k => $ v ) if ( ! is_array ( $ v ) || ! ( bool ) count ( array_filter ( array_keys ( $ v ) , 'is_string' ) ) ) $ this -> data [ $ path . $ k ] = $ v ; else $ this -> walk ( $ v , $ path . $ k . '.' ) ; }
Recursively walks over an array to flatten it's keys for faster look up.

@param  array  $array the array to walk over
@param  string $path  optional; the current path we're walking
Recursively walks over an array to flatten it s keys for faster look up .