public function setArray(string $key, $value, callable $callback = null, array $ignoredDefaultValue = null)
    {
        if ($value instanceof Traversable) {
            $value = iterator_to_array($value);
        }
        if (is_array($value)) {
            if (is_callable($callback)) {
                $value = array_map($callback, $value);
            }
            $this->set($key, $value, $ignoredDefaultValue);
        }
        return $this;
    }