public function arrayExplode(array $array) {
		$data = [];

		// iterate keys
		foreach ($array as $rkey => $row) {
			$parent =& $data;
			$parts = explode('.', $rkey);

			// iterate key parts
			foreach ($parts as $part) {
				// build values
				if (!isset($parent[$part]) || !is_array($parent[$part])) {
					if ($part === end($parts)) {
						if (!is_array($row)) $parent[$part] = $row;
						else $parent[$part] = $this->arrayExplode($row);
					}
					else $parent[$part] = [];
				}
				$parent = &$parent[$part];
			}
		}
		return $data;
	}