对数组使用 unset 和 count
Use of unset and count with arrays
我有一个包含其他数组的数组,其中包含每个用户的详细信息。例如:
$_SESSION["ActQueue"] = [["J.Paul", "John", "Paul", "0000-00-00 00:00:00"],["J.Bloggs", "Joe", "Bloggs", "0000-00-00 00:00:00"]]
我写了一些代码,将数组中第一个用户的 "account rank" 转换为数据库中的 "Cadet"。然后代码从数组中删除用户,然后应该 echo data = 1 或列表中的下一个用户,具体取决于它们是否存在。我已经用下面的代码完成了这个,但是我发现当 unset 删除第一个项目时,它的键不会向下移动 1,所以 0 根本不存在,1 仍然是 "J.Bloggs"。因此,当回显下一个用户时,不会发送任何值。有什么建议吗?
<?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;
}
?>
unset($_SESSION["ActQueue"][0]);
$_SESSION["ActQueue"] = array_values($_SESSION["ActQueue"]);
似乎 unset()
并不总是重置数组键。函数 array_values 使用正确的键/索引重新定义我的数组。
我有一个包含其他数组的数组,其中包含每个用户的详细信息。例如:
$_SESSION["ActQueue"] = [["J.Paul", "John", "Paul", "0000-00-00 00:00:00"],["J.Bloggs", "Joe", "Bloggs", "0000-00-00 00:00:00"]]
我写了一些代码,将数组中第一个用户的 "account rank" 转换为数据库中的 "Cadet"。然后代码从数组中删除用户,然后应该 echo data = 1 或列表中的下一个用户,具体取决于它们是否存在。我已经用下面的代码完成了这个,但是我发现当 unset 删除第一个项目时,它的键不会向下移动 1,所以 0 根本不存在,1 仍然是 "J.Bloggs"。因此,当回显下一个用户时,不会发送任何值。有什么建议吗?
<?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;
}
?>
unset($_SESSION["ActQueue"][0]);
$_SESSION["ActQueue"] = array_values($_SESSION["ActQueue"]);
似乎 unset()
并不总是重置数组键。函数 array_values 使用正确的键/索引重新定义我的数组。