我有一个数组$ items。它有某些元素,如Array([0] => 1 1 => 2 [2] => 3)。从这个数组我可以删除第一个和第二个索引。但是我无法使用array unset方法删除第0个索引。
有没有办法从数组中删除第0个索引?
提前致谢...
<?php
session_start();
$items = $_SESSION['cart'];
$cartitems = explode(",", $items);
print_r($cartitems);
if(isset($_GET['remove']) & !empty($_GET['remove'])){
$delitem = $_GET['remove'];
unset($cartitems[$delitem]);
$itemids = implode(",", $cartitems);
$_SESSION['cart'] = $itemids;
if($_GET['remove']==0)
{
unset($cartitems[0]);
$itemids = implode(",", $cartitems);
$_SESSION['cart'] = $itemids;
}
//echo "<script>alert('removed Successfully ');window.location= '".('hide.php')."'</script>";
}
?>
我有上面的代码。因为我从$_GET['remove']
得到密钥(索引)。所以我将从数组中取消设置该特定密钥。但我无法取消其指数。
我无法从阵列中移除电视。
答案 0 :(得分:3)
如果需要在PHP中删除数组的第一个元素,可以使用array_shift($array)
。
例如:
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_shift($stack);
$stack
现在将包含["banana", "apple", "raspberry"]
,而$fruit
将等于"orange"
。
答案 1 :(得分:0)
使用array_shift($array)
删除数组的第一个元素时。它将重置键,您的键将被更改。因此,如果您希望更改密钥,可以使用array_shift($array)
。
如果您不想更改密钥,请使用以下命令:
reset($array);
$key = key($array);
unset($array[$key]);
答案 2 :(得分:0)
unset
方法应该有效:
<?php
$arr = array(1,2,3,4,5,6);
print_r($arr); // output [0] => 1 [1] => 2 and so on
unset($arr[0]);
print_r($arr); // output [1] => 2 and so on
答案 3 :(得分:0)
检查您使用的条件 if(isset($ _ GET [&#39;删除&#39;])&amp;!empty($ _ GET [&#39;删除&#39;]))改为使用if(isset($ _ GET [&#39; remove& #39;]))
试试此代码
<?php
session_start();
$items = $_SESSION['cart'];
$cartitems = explode(",", $items);
if(isset($_GET['remove']) ){
$delitem = $_GET['remove'];
unset($cartitems[$delitem]);
$itemids = implode(",", $cartitems);
$_SESSION['cart'] = $itemids;
}
?>