private static function buildTree($deep, $array, &$tree, $callback)
{
if ($deep == count($array) - 1) {
self::buildCallback($tree, $callback);
// Register callback in the deepest path.
return;
}
if (self::$debug) {
echo 'deep = ' . $deep . ', $array[$deep] = ' . $array[$deep] . "\n";
}
$val = $array[$deep];
$childTree =& $tree;
if (!isset($tree[$val])) {
$tree[$val] = array();
}
$childTree =& $tree[$val];
self::buildTree($deep + 1, $array, $childTree, $callback);
// To build deeper path
return true;
}