我试图在php中的会话数组中取消设置某个值。我想问一下这样做是否有更好的方法:
<?php
session_start();
if(isset($_GET['Uname'])){
echo "Uname is set!";
$uname=$_GET['Uname'];
echo count($_SESSION['user']);
for($x=0; $x < count($_SESSION['user']); $x++ ){
if($_SESSION['user'][$x]['Uname']==$uname){
unset($_SESSION['user'][$x]['Uname']);
}
}
}else{
}
?>
是否可以使用foreach循环完成相同的操作?或者另一种方法
答案 0 :(得分:0)
确定未设置user
应该解决这个问题。你不需要循环。试试这个,刷新页面肯定会一次设置值,而其他页面则取消设置值。
<?php
session_start();
$array = array('arr', 'arr', 'arr', 'arr', 'arr', 'arr');
if(isset($_SESSION['user']))
{
print_r($_SESSION['user']);
unset($_SESSION['user']);
}
else{
$_SESSION['user'] = $array;
echo "user session was set";
}
根据这个问题https://stackoverflow.com/questions/4891301/top-bad-practices-in-php,在循环中使用count()
是一种不好的做法。
答案 1 :(得分:0)
我试图在php中的会话数组中取消设置某个值。我想问一下这样做是否有更好的方法。
我可以向您保证,取消设置变量的最佳方法是使用unset()
函数。