我正在开发一个酒店项目,该项目使用会话数组在表中显示数据。我想知道如何从 php 会话数组中删除特定项目。如何在按下删除按钮时删除特定的阵列键。请帮我解决这个问题。
要从 PHP 会话数组中删除特定项目,您可以使用 unset() 函数以及要删除的特定键。具体方法如下:
假设您在会话中存储了一个数组:
session_start(); // Make sure to start the session first
// Initialize the session array if it doesn't exist
if (!isset($_SESSION['hotel_data'])) {
$_SESSION['hotel_data'] = array();
}
// Add some data to the session array
$_SESSION['hotel_data'][] = array('name' => 'Hotel A', 'rating' => 4);
$_SESSION['hotel_data'][] = array('name' => 'Hotel B', 'rating' => 3);
$_SESSION['hotel_data'][] = array('name' => 'Hotel C', 'rating' => 5);
现在,如果您想在按下删除按钮时从会话数组中删除特定项目,您可以这样做:
if (isset($_GET['delete']) && isset($_GET['index'])) {
$index = $_GET['index'];
if (isset($_SESSION['hotel_data'][$index])) {
unset($_SESSION['hotel_data'][$index]);
$_SESSION['hotel_data'] = array_values($_SESSION['hotel_data']); // Reindex the array
}
}
// Display the table
echo '<table>';
foreach ($_SESSION['hotel_data'] as $index => $hotel) {
echo '<tr>';
echo '<td>' . $hotel['name'] . '</td>';
echo '<td>' . $hotel['rating'] . '</td>';
echo '<td><a href="?delete=true&index=' . $index . '">Delete</a></td>';
echo '</tr>';
}
echo '</table>';
在此示例中,当您单击特定项目的“删除”链接时,它将将该项目的索引传递给 URL。然后,使用 unset() 函数,该项目将从会话数组中删除。之后,使用 array_values() 函数重新索引数组,使索引再次按顺序排列。