【问题标题】:Remove zero th index from php array从 php 数组中删除第零个索引
【发布时间】:2017-11-24 10:18:50
【问题描述】:

我有一个数组 $items 。它具有某些元素,例如 Array([0]=>1 1=>2 [2]=>3) 。从这个数组中,我可以删除第一个和第二个索引。但我无法使用数组取消设置方法删除第 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'].获取键(索引)所以我将从数组中取消设置该特定键。但我无法取消设置其他索引。

我无法从阵列中取出电视机。

【问题讨论】:

    标签: php arrays unset


    【解决方案1】:

    检查你使用的 if 条件 if(isset($_GET['remove']) & !empty($_GET['remove'])) 改为使用 if(isset($_GET['remove']) )

    试试这个代码

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

    【讨论】:

      【解决方案2】:

      当您使用array_shift($array) 删除数组的第一个元素时。它将重置密钥并且您的密钥将被更改。所以,如果你想改变你的密钥,你可以使用array_shift($array)

      如果您不想更改密钥,请使用以下命令:

      reset($array);
      
      $key = key($array);
      unset($array[$key]);
      

      【讨论】:

        【解决方案3】:

        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
        

        【讨论】:

          【解决方案4】:

          如果您需要在 PHP 中删除数组的第一个元素,您可以使用array_shift($array)

          例如:

          $stack = array("orange", "banana", "apple", "raspberry"); $fruit = array_shift($stack);

          $stack 现在将包含["banana", "apple", "raspberry"],而$fruit 将等于"orange"

          【讨论】:

          • 我不想换班。我只想删除数组的第 0 个索引
          • 这就是 shift 的作用?它会删除数组的第 0 个(第一个)索引。
          猜你喜欢
          • 1970-01-01
          • 2011-03-01
          • 2011-04-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-10-25
          • 2013-05-12
          • 2020-03-20
          相关资源
          最近更新 更多