fork download
  1. <?php
  2. function getValue($key, $arr, $default=null) {
  3. $pieces = explode('.', $key);
  4. $array = $arr;
  5.  
  6. foreach($pieces as $array_key) {
  7.  
  8. if(!is_null($array) && is_array($array) && array_key_exists($array_key, $array)) {
  9. $array = $array[$array_key];
  10. }
  11. else {
  12. $array = null;
  13. break;
  14. }
  15. }
  16. return is_null($array) ? $default : $array;
  17. }
  18.  
  19. $testarr = [
  20. ['foobar' => 'baz'],
  21. ['active' => false]
  22. ];
  23. $output = getValue('0.foobar',$testarr,'NOT FOUND');
  24. var_dump($output);
  25. $output = getValue('0',$testarr,'NOT FOUND');
  26. var_dump($output);
  27. $output = getValue('1.active',$testarr,'NOT FOUND');
  28. var_dump($output);
  29. $output = getValue('i.do.not.exist',$testarr,'NOT FOUND');
  30. var_dump($output);
  31.  
Success #stdin #stdout 0s 82880KB
stdin
Standard input is empty
stdout
string(3) "baz"
array(1) {
  ["foobar"]=>
  string(3) "baz"
}
bool(false)
string(9) "NOT FOUND"