Array get path

With this function you can find values in an array by <br/> an path like "abc/def/ghi". <br/> This function was an idea, I had a few months ago...
function ArrayGetPath($data, $path, &$result){ $found = true; $path = explode("/", $path); for ($x=0; ($x < count($path) and $found); $x++){ $key = $path[$x]; if (isset($data[$key])){ $data = $data[$key]; } else { $found = false; } } $result = $data; return $found; } // Please look at the examples (below) // test data: $tree_data = array( 'red' => array( 'max' => 100, 'min' => 0 ), 'blue' => 'water', 'green' => 'flowers', 'grey' => array( 'light' => array('eeeeee', 'e7e7e7'), 'dark' => array('cccccc') ), 7 => 'foobar' ); // path tests: $path_tests = array( 'red/max', 'foo/bar', 'grey/light/1', 'grey/dark', 'grey/dark/1', 'red/min', 'red/min/1', 'abc/def/ghi', '7', 'grey' ); // loop trough all path tests: for ($x=0; $x < count($path_tests); $x++){ $test_path = $path_tests[$x]; // test path: if(ArrayGetPath($tree_data, $test_path, $result)){ print "The array path '$test_path' was found, showing content:<br/>\n<pre>"; print_r($result); print "</pre>"; } else { print "The array path '$test_path' was not found!<br/>\n"; } print "<br/>\n"; }

Url: http://www.jonasjohn.de/snippets/php/array-get-path.htm

Language: PHP | User: ShareMySnippets | Created: Oct 16, 2013