在PHP中取消设置多维数组

时间:2011-03-24 09:39:45

标签: php arrays loops

我试图在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循环完成相同的操作?或者另一种方法

2 个答案:

答案 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()函数。