如何根据值删除会话变量数据


How to delete session variable data based on value

首先,我创建一个会话变量来存储图像路径

正如我建议的那样,

如果你像下面这样分配

$filename  = $_FILES["file"]["name"];

 $_SESSION["auctionImages"][]= $filename ; // Here I make changes. Instead of assigining it into multidimensional array I assigned in 2D array

你的SESSION阵列将变得像

Array
(
    [0] => IMG_2923.JPG
    [1] => IMG_2924.JPG
)

如果你得到如上所述的会话数组,你现有的代码本身将工作

$a = $_POST['id']; // user choose to delete photo example value will be IMG_2923.JPG
$key=array_search($a,$_SESSION['auctionImages']);
if($key!==false) {
     unset($_SESSION['auctionImages'][$key]);
     $_SESSION["auctionImages"] = array_values($_SESSION["auctionImages"]);
}

我的工作代码:

<?php
    session_start(); // Initializing session
    $auctionImage = time().'.jpg';
    $_SESSION["auctionImages"][]= $auctionImage; // Testing purpose I am creating a image array in `SESSION` using timestamp.
    $a = '1451559040.jpg'; // Reference Key. Here you can assign any existing value. For testing purpose I put some static value.
    $key=array_search($a,$_SESSION['auctionImages']);
    if($key!==false)
        unset($_SESSION['auctionImages'][$key]);
    $_SESSION["auctionImages"] = array_values($_SESSION["auctionImages"]);
    echo '<pre>'; print_r($_SESSION['auctionImages']);
    echo '<pre>'; print_r($key); die;
?>