function array_to_object_recursive($a) { if (is_associative_array($a)) { $o = (object) array(); foreach ($a as $k => $v) { if ($k !== "") { $o->{$k} = array_to_object_recursive($v); } } return $o; } else { return $a; } }
function merge_and_save_data($data) { $this->activate_database_account(); $this->make_data(); $old = $this->encode_data(); object_replace_recursive($this->data, array_to_object_recursive($data)); $new = $this->encode_data(); if ($old !== $new) { Dbl::qe("update ContactInfo set data=? where contactId={$this->contactId}", $new); } }