private static function dereferenceDots(&$result, $references, $values)
    {
        $top = array_shift($references);

        $ref = end($references);
        while (key($references) !== null) {
            $values = array($ref => $values);
            $ref = prev($references);
        }

        if (array_key_exists($top, $result)) {
            $result[$top] = self::mergeTwoValues($result[$top], $values, array($top));
        }
        else {
            $result[$top] = $values;
        }
    }
private static function dereferenceDots(&$result, $references, $values)
    {
        $top = array_shift($references);

        $ref = end($references);
        while (key($references) !== null) {
            $values = array($ref => $values);
            $ref = prev($references);
        }

        if (array_key_exists($top, $result)) {
            $result[$top] = self::mergeTwoValues($result[$top], $values, array($top));
        }
        else {
            $result[$top] = $values;
        }
    }
private static function dereferenceDots ( & $ result , $ references , $ values ) { $ top = array_shift ( $ references ) ; $ ref = end ( $ references ) ; while ( key ( $ references ) !== null ) { $ values = array ( $ ref => $ values ) ; $ ref = prev ( $ references ) ; } if ( array_key_exists ( $ top , $ result ) ) { $ result [ $ top ] = self :: mergeTwoValues ( $ result [ $ top ] , $ values , array ( $ top ) ) ; } else { $ result [ $ top ] = $ values ; } }
Dereference an array of keys and append the result to an array.

@param array $result The resulting array to append to.
@param array $references The dotted key as an array of strings.
@param mixed $values The values the dotted key points to.

@return void
@throws InconsistentKeyTypes
Dereference an array of keys and append the result to an array .