rt例如有以下这个方法(里面的第一个参数):load_session(array('RECOMMEND', 'RECOMMEND_ID'), $_GET['openid'])
我想把它转成以下session格式:$_SESSION['RECOMMEND']['RECOMMEND_ID'] = $_GET['openid']
如何做到该效果?

解决方案 »

  1.   


    load_session(array('RECOMMEND', 'RECOMMEND_ID'), 'test123');
    function load_session($arr,$value){
    $str="['".join("']['",$arr)."']";
    session_start();
    eval("\$_SESSION$str = '$value';");
    echo "<pre>";
    print_r($_SESSION);
    echo "</pre>";
    }
    /*
    Array
    (
        [RECOMMEND] => Array
            (
                [RECOMMEND_ID] => test123
            ))
    */
      

  2.   


    session_start();
    load_session(array('RECOMMEND', 'RECOMMEND_ID'), $_GET['openid']);
    print_r($_SESSION);function load_session($arr, $value){
    $tmp = '';
    foreach($arr as $a){
    $tmp .= "['".$a."']";
    }
    eval('$_SESSION'.$tmp.'='.$value.';');
    }
      

  3.   

    session_start();
    load_session(array('RECOMMEND', 'RECOMMEND_ID'), '12345');
    print_r($_SESSION);function load_session($key_array, $value){
      $p =& $_SESSION;
      foreach($key_array as $k) {
        $p[$k] = array();
        $p =& $p[$k];
      }
      $p = $value;
    }
      

  4.   


    $p[$k] = array();这里要多个isset,否则有值或有多个元素的会被清空。