使用unset和count与数组

时间:2016-11-28 10:45:47

标签: php arrays count unset

我有一个包含其他数组的数组,其中包含每个用户的详细信息。例如:

$_SESSION["ActQueue"] = [["J.Paul", "John", "Paul", "0000-00-00 00:00:00"],["J.Bloggs", "Joe", "Bloggs", "0000-00-00 00:00:00"]]

我写了一些代码,意味着转换"帐号排名"阵列中的第一个用户#34; Cadet"在数据库中。然后代码从数组中删除用户,然后应该回显data = 1或列表中的下一个用户,具体取决于它们是否存在。我用下面的代码完成了这个,但是我发现当unset删除第一个项目时,键不会向下移动1,所以0将不存在,1将仍然是" J .Bloggs&#34 ;.因此,当回显下一个用户时,不会发送任何值。有什么建议吗?

<?php
session_start();

require "classes.php";
$TF = new TF_Core ();

$ActQueueAccept = "UPDATE users 
    SET rank = 'Cadet' 
    WHERE username = ?";

if ($statement = TF_Core::$MySQLi->DB->prepare($ActQueueAccept)) {
    $statement->bind_param('s',$_SESSION["ActQueue"][0][0]);
    $statement->execute();
}

unset($_SESSION["ActQueue"][0]);

if(count($_SESSION["ActQueue"] != 0)){
    echo json_encode(['Username'=>$_SESSION["ActQueue"][0][0], 'Surname'=>$_SESSION["ActQueue"][0][1],'Forename'=>$_SESSION["ActQueue"][0][2],'Joined'=>$_SESSION["ActQueue"][0][3]]);
}
else{
    $data =  1;
    echo $data;
}
?>

1 个答案:

答案 0 :(得分:1)

unset($_SESSION["ActQueue"][0]);
$_SESSION["ActQueue"] = array_values($_SESSION["ActQueue"]);

似乎unset()并不总是重置数组键。函数array_values使用正确的键/索引重新定义我的数组。

相关问题