|
|
@@ -57,12 +57,21 @@ class Hash {
|
|
|
$parts = $path;
|
|
|
}
|
|
|
|
|
|
- foreach ($parts as $key) {
|
|
|
- if (is_array($data) && isset($data[$key])) {
|
|
|
- $data = $data[$key];
|
|
|
- } else {
|
|
|
- return $default;
|
|
|
- }
|
|
|
+ switch (count($parts)) {
|
|
|
+ case 1:
|
|
|
+ return isset($data[$parts[0]]) ? $data[$parts[0]] : $default;
|
|
|
+ case 2:
|
|
|
+ return isset($data[$parts[0]][$parts[1]]) ? $data[$parts[0]][$parts[1]] : $default;
|
|
|
+ case 3:
|
|
|
+ return isset($data[$parts[0]][$parts[1]][$parts[2]]) ? $data[$parts[0]][$parts[1]][$parts[2]] : $default;
|
|
|
+ default:
|
|
|
+ foreach ($parts as $key) {
|
|
|
+ if (is_array($data) && isset($data[$key])) {
|
|
|
+ $data = $data[$key];
|
|
|
+ } else {
|
|
|
+ return $default;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return $data;
|