CI_URI::_uri_to_assoc PHP Метод

_uri_to_assoc() защищенный Метод

Generates a key/value pair from the URI string or re-routed URI string.
protected _uri_to_assoc ( integer $n = 3, array $default = [], string $which = 'segment' ) : array
$n integer Index (default: 3)
$default array Default values
$which string Array name ('segment' or 'rsegment')
Результат array
    protected function _uri_to_assoc($n = 3, $default = array(), $which = 'segment')
    {
        if (!is_numeric($n)) {
            return $default;
        }
        if (isset($this->keyval[$which], $this->keyval[$which][$n])) {
            return $this->keyval[$which][$n];
        }
        $total_segments = "total_{$which}s";
        $segment_array = "{$which}_array";
        if ($this->{$total_segments}() < $n) {
            return count($default) === 0 ? array() : array_fill_keys($default, NULL);
        }
        $segments = array_slice($this->{$segment_array}(), $n - 1);
        $i = 0;
        $lastval = '';
        $retval = array();
        foreach ($segments as $seg) {
            if ($i % 2) {
                $retval[$lastval] = $seg;
            } else {
                $retval[$seg] = NULL;
                $lastval = $seg;
            }
            $i++;
        }
        if (count($default) > 0) {
            foreach ($default as $val) {
                if (!array_key_exists($val, $retval)) {
                    $retval[$val] = NULL;
                }
            }
        }
        // Cache the array for reuse
        isset($this->keyval[$which]) or $this->keyval[$which] = array();
        $this->keyval[$which][$n] = $retval;
        return $retval;
    }