public function digSet($path, $value) { $parts = explode(".", $path, 2); if (count($parts) == 1) { $this->offsetSet($path, $value); return $this; } $c_value = $this[$parts[0]]; if (!is_array($c_value)) { $c_value = array(); } fx::digSet($c_value, $parts[1], $value); $this->offsetSet($parts[0], $c_value); return $this; }