public static function explodeArrayOnKeys($array, $explodeOn, $limit = null)
    {
        $result = [];
        foreach ($array as $path => $value) {
            $temp = &$result;
            $tempArray = ($limit === null) ? explode($explodeOn, $path) : explode($explodeOn, $path, $limit);
            foreach ($tempArray as $key) {
                $temp = &$temp[$key];
            }
            $temp = $value;
        }

        return $result;
    }