<?php
function get
(array $array, $keys) { $val = $array;
foreach (explode('/', $keys) as $part) { if (!isset($val[$part])) { return null;
}
$val = $val[$part];
}
return $val;
}
function set
(array &$array, $keys, $value) { $val = &$array;
foreach (explode('/', $keys) as $part) { if (!isset($val[$part])) { }
$val = &$val[$part];
}
$val = $value;
}
$array['foo']['bar']['baz'] = 'something';
set($array, 'foo/bar/baz', 'something else');
set($array, 'foo/bar/bar', 'something new');
PD9waHAKCmZ1bmN0aW9uIGdldChhcnJheSAkYXJyYXksICRrZXlzKSB7CiAgJHZhbCA9ICRhcnJheTsKICBmb3JlYWNoIChleHBsb2RlKCcvJywgJGtleXMpIGFzICRwYXJ0KSB7CiAgICBpZiAoIWlzc2V0KCR2YWxbJHBhcnRdKSkgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0KICAgICR2YWwgPSAkdmFsWyRwYXJ0XTsKICB9CiAgcmV0dXJuICR2YWw7Cn0KCmZ1bmN0aW9uIHNldChhcnJheSAmJGFycmF5LCAka2V5cywgJHZhbHVlKSB7CiAgJHZhbCA9ICYkYXJyYXk7CiAgZm9yZWFjaCAoZXhwbG9kZSgnLycsICRrZXlzKSBhcyAkcGFydCkgewogICAgaWYgKCFpc3NldCgkdmFsWyRwYXJ0XSkpIHsKICAgICAgJHZhbFskcGFydF0gPSBhcnJheSgpOwogICAgfQogICAgJHZhbCA9ICYkdmFsWyRwYXJ0XTsKICB9CiAgJHZhbCA9ICR2YWx1ZTsKfQoKJGFycmF5Wydmb28nXVsnYmFyJ11bJ2JheiddID0gJ3NvbWV0aGluZyc7CnZhcl9kdW1wKCRhcnJheSk7CnZhcl9kdW1wKGdldCgkYXJyYXksICdmb28vYmFyL2JheicpKTsKCnNldCgkYXJyYXksICdmb28vYmFyL2JheicsICdzb21ldGhpbmcgZWxzZScpOwp2YXJfZHVtcCgkYXJyYXkpOwoKc2V0KCRhcnJheSwgJ2Zvby9iYXIvYmFyJywgJ3NvbWV0aGluZyBuZXcnKTsKdmFyX2R1bXAoJGFycmF5KTs=