src/Tools/ArrayModifier.php
public static function disaggregate($array)
    {
        $new = [];
        foreach ($array as $key => $val) {
            if (false !== strpos($key, ".")) {
                list($realKey, $aggregated) = explode(".", $key, 2);
                $values = self::getDisaggregatedValues(preg_grep("/^$realKey/", array_keys($array)), $array);
                $new[$realKey] = self::disaggregate($values);
            } else {
                $new[$key] = $val;
            }
        }

        return $new;
    }
public static function disaggregate($array)
    {
        $new = [];
        foreach ($array as $key => $val) {
            if (false !== strpos($key, ".")) {
                list($realKey, $aggregated) = explode(".", $key, 2);
                $values = self::getDisaggregatedValues(preg_grep("/^$realKey/", array_keys($array)), $array);
                $new[$realKey] = self::disaggregate($values);
            } else {
                $new[$key] = $val;
            }
        }

        return $new;
    }
public static function disaggregate ( $ array ) { $ new = [ ] ; foreach ( $ array as $ key => $ val ) { if ( false !== strpos ( $ key , "." ) ) { list ( $ realKey , $ aggregated ) = explode ( "." , $ key , 2 ) ; $ values = self :: getDisaggregatedValues ( preg_grep ( "/^$realKey/" , array_keys ( $ array ) ) , $ array ) ; $ new [ $ realKey ] = self :: disaggregate ( $ values ) ; } else { $ new [ $ key ] = $ val ; } } return $ new ; }
Disaggreate a dot notation array to an multi-dimensionnal array

@param   array   $array  Dot notation array
@return  void
Disaggreate a dot notation array to an multi - dimensionnal array