rt例如有以下这个方法(里面的第一个参数):load_session(array('RECOMMEND', 'RECOMMEND_ID'), $_GET['openid'])
我想把它转成以下session格式:$_SESSION['RECOMMEND']['RECOMMEND_ID'] = $_GET['openid']
如何做到该效果?
我想把它转成以下session格式:$_SESSION['RECOMMEND']['RECOMMEND_ID'] = $_GET['openid']
如何做到该效果?
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
))
*/
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.';');
}
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;
}
$p[$k] = array();这里要多个isset,否则有值或有多个元素的会被清空。