Welcome Guest, Not a member yet? Register   Sign In
How to add, access, unset arrays in CI session?
#2

[eluser]WanWizard[/eluser]
From our session library extension:
Code:
/**
     * Add or change data in the "userdata" array
     *
     * set_userdata method with support for multi-dimensional arrays
     *
     * @access    public
     * @param    string
     * @param    array
     * @return    void
     */
    function set_userdata_array($arrayname = NULL, $newdata = array())
    {
        if ( ! is_null($arrayname) && is_array($newdata) )
        {
            if ( !isset($this->userdata[$arrayname]) )
            {
                $this->userdata[$arrayname] = array();
            }

            if (count($newdata) > 0)
            {
                foreach ($newdata as $key => $val)
                {
                    $this->userdata[$arrayname][$key] = $val;
                }
            }
        }
    }


    /**
     * Delete a session variable from the "userdata" array
     *
     * Our version supports multi-arrays as session data
     *
     * @access    public
     * @param    string
     * @return    string
     */
    function unset_userdata($item, $subitem = NULL)
    {
        if ( is_null($subitem) )
        {
            if (is_string($item))
            {
                $item = array($item => '');
            }

            if (count($item) > 0)
            {
                foreach ($item as $key => $val)
                {
                    unset($this->userdata[$key]);
                }
            }
        }
        else
        {
            unset($this->userdata[$item][$subitem]);
        }

        $this->sess_write();
    }

    /**
     * Fetch a specific item from the session array
     *
     * Our version supports multi-arrays as session data
     *
     * @access    public
     * @param    string
     * @return    string
     */
    function userdata($item, $subitem = NULL)
    {
        if ( is_null($subitem) )
        {
            return ( ! isset($this->userdata[$item])) ? FALSE : $this->userdata[$item];
        }
        else
        {
            return ( ! isset($this->userdata[$item][$subitem])) ? FALSE : $this->userdata[$item][$subitem];
        }
    }

    // --------------------------------------------------------------------

    /**
     * Delete a session variable from the "userdata" array
     *
     * Our version supports multi-arrays as session data
     *
     * @access    public
     * @param    string
     * @return    string
     */
    function unset_userdata($item, $subitem = NULL)
    {
        if ( is_null($subitem) )
        {
            if (is_string($item))
            {
                $item = array($item => '');
            }

            if (count($item) > 0)
            {
                foreach ($item as $key => $val)
                {
                    unset($this->userdata[$key]);
                }
            }
        }
        else
        {
            unset($this->userdata[$item][$subitem]);
        }

        $this->sess_write();
    }


Messages In This Thread
How to add, access, unset arrays in CI session? - by El Forum - 06-16-2010, 04:11 PM
How to add, access, unset arrays in CI session? - by El Forum - 06-17-2010, 12:17 AM
How to add, access, unset arrays in CI session? - by El Forum - 06-17-2010, 03:53 AM
How to add, access, unset arrays in CI session? - by El Forum - 06-17-2010, 04:15 AM



Theme © iAndrew 2016 - Forum software by © MyBB