从php数组中删除第零个索引

时间:2017-06-21 13:19:15

标签: php arrays unset

我有一个数组$ 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']得到密钥(索引)。所以我将从数组中取消设置该特定密钥。但我无法取消其指数。 enter image description here

我无法从阵列中移除电视。

4 个答案:

答案 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;
} 
?>