WP_Customize_Setting::multidimensional PHP Method

multidimensional() final protected method

Multidimensional helper function.
Since: 3.4.0
final protected multidimensional ( &$root, $keys, boolean $create = false ) : array | void
$root
$keys
$create boolean Default is false.
return array | void Keys are 'root', 'node', and 'key'.
    protected final function multidimensional(&$root, $keys, $create = false)
    {
        if ($create && empty($root)) {
            $root = array();
        }
        if (!isset($root) || empty($keys)) {
            return;
        }
        $last = array_pop($keys);
        $node =& $root;
        foreach ($keys as $key) {
            if ($create && !isset($node[$key])) {
                $node[$key] = array();
            }
            if (!is_array($node) || !isset($node[$key])) {
                return;
            }
            $node =& $node[$key];
        }
        if ($create) {
            if (!is_array($node)) {
                // account for an array overriding a string or object value
                $node = array();
            }
            if (!isset($node[$last])) {
                $node[$last] = array();
            }
        }
        if (!isset($node[$last])) {
            return;
        }
        return array('root' => &$root, 'node' => &$node, 'key' => $last);
    }