我有一个如下所示的php OnClickListener
数组:
SESSION
根据给定的键,我想从此数组中取消设置键/值。
我试过这样的事情:
[image] => Array
(
[1] => 1475141244.jpg
[2] => 1475141245.jpg
[3] => 1475141245_1.jpg
[4] => 1475141246.jpg
)
但我的问题是我无法取消此数组中的第一项。对于其他键,对我来说不是问题。
有谁可以告诉我这是什么原因?
答案 0 :(得分:1)
以下是取消设置$_SESSION
的简单解决方案 - 使用in_array()
功能检查所需值是否在$_SESSION
中。
if(!empty($_POST['key'])){
$delkey = $_POST['key'];
if(in_array($delkey, $_SESSION['image'])){
$imgkey = array_search($delkey, $_SESSION['image']);
unset($_SESSION['image'][$imgkey ]);
}
}
以下是带有数组并创建帖子值的working example。
我认为这会对你有所帮助。让我知道是不是这样?
答案 1 :(得分:0)
您可以尝试array_shift()
,例如:array_shift($_SESSION['image']);
我尝试了以下代码,但是有效。
<?php
session_start();
$_SESSION['image'] = array(
1 => '1475141244.jpg',
2 => '1475141245.jpg',
3 => '1475141245_1.jpg',
4 => '1475141246.jpg',
);
array_shift($_SESSION['image']);
var_dump($_SESSION);
答案 2 :(得分:0)
array_shift()关闭数组的第一个值并返回它,将数组缩短一个元素并将所有内容向下移动。将修改所有数值数组键以从零开始计数,而不会触及文字键。
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_shift($stack);
print_r($stack);
输出:
Array
(
[0] => banana
[1] => apple
[2] => raspberry
)
答案 3 :(得分:0)
请试试这个。
if (!empty($_POST['key'])){
session_start();
$delkey = $_POST['key'];
foreach ($_SESSION['image'] as $k => $v) {
if ($delkey == $v) {
$imgkey = array_search($v, $_SESSION['image']);
if($imgkey) {
unset($_SESSION['image'][$imgkey]);
}
}
}
}