3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [ 'key1' => [ 'key2' => [ 'key3' => 'YAY I GOT IT' ] ] ]; $keys = ['key1', 'key2', 'key3']; function findValueForKeys($data, $keys) { $key = array_shift($keys); echo "Searching for: '$key' in: '" . print_r($data, true) . "'" . PHP_EOL; if (!is_array($data)) { return $data; } if (array_key_exists($key, $data)) { if (!is_array($data[$key])) { echo 'Got the last value. It is: ' . $data[$key] . PHP_EOL; return $data[$key]; } findValueForKeys($data[$key], $keys); } else { return $data; } }; echo "Searching... got the value: " . findValueForKeys($array, $keys);
Output for 5.5.0 - 5.5.35, 5.6.0 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.27, 8.4.1 - 8.4.14
Searching for: 'key1' in: 'Array ( [key1] => Array ( [key2] => Array ( [key3] => YAY I GOT IT ) ) ) ' Searching for: 'key2' in: 'Array ( [key2] => Array ( [key3] => YAY I GOT IT ) ) ' Searching for: 'key3' in: 'Array ( [key3] => YAY I GOT IT ) ' Got the last value. It is: YAY I GOT IT Searching... got the value:

preferences:
112.87 ms | 409 KiB | 5 Q