function arrayGet($array, $key, $default = null) {
$keys = explode('.', $key);
$a = $array;
while (count($keys) != 0) {
$key = array_shift($keys);
if(!isset($a[$key])){
return $default;
}
$a = $a[$key];
}
return $a;
}
function arraySet(&$array, $key, $value) {
$keys = explode('.', $key);
if (count($keys) == 1) {
$array[$key] = $value;
return;
}
$a = array();
$b = $array;
while (count($keys) != 0) {
$k = array_shift($keys);
$b = isset($b[$k]) ? $b[$k] : array();
$a[$k] = $b;
}
$ka = array_keys($a);
$a[end($ka)] = $value;
for ($index = count($ka) - 2; $index >= 0; $index--) {
$k = $ka[$index];
$nextK = $ka[$index + 1];
$a[$k] = array_merge($a[$k], array($nextK => $a[$nextK]));
}
$array[$ka[0]] = $a[$ka[0]];
}