【问题标题】:How do I delete array elements one by one every time I reload the page?每次重新加载页面时如何一个一个地删除数组元素?
【发布时间】:2013-09-16 05:30:10
【问题描述】:
<?php
    session_start();    
    $_SESSION['del']=array("a1","a2","a3","a4","a5");
    unset($_SESSION['del'][0]);
    echo implode(" ",$_SESSION['del'])    
?>

如何在每次刷新页面时一个一个地删除每个数组元素?

【问题讨论】:

  • 此代码不会像您预期的那样工作,因为您在取消设置第一个元素之前重新初始化了数组。每次加载都会显示相同的结果。重新组织代码以解决此问题,然后重试。
  • 对不起,我是 php 新手,这里也是新手。我不知道如何修复我的代码。这就是为什么我想从这里获得一些帮助。感谢您的回答和时间。

标签: php arrays session unset


【解决方案1】:
if(isset($_SESSION['del']))
{
 if(is_array($_SESSION['del']))
 {
  array_shift($_SESSION['del']);
 }
}

代码说明

如果当前设置了会话删除。

而且 session['del'] 是一个数组

删除数组del的第一个值。

【讨论】:

    【解决方案2】:

    这里是代码

    <?php
    session_start();    
    if(isset($_SESSION['del'])) {  // to make sure array is not set again as in question
        unset($_SESSION['del'][0]); // remove the first element
        $_SESSION['del'] = array_values($_SESSION['del']); // to shift rest of the elements one location left for making indexes starts from 0
    } else { // set session array only once
        $_SESSION['del']=array("a1","a2","a3","a4","a5");
    }
    echo implode(" ",$_SESSION['del']); // print results    
    ?>
    

    【讨论】:

    • 你最好解释一下你在这里做什么,因为OP不熟悉php,或者编码它似乎是一个整体。
    • @Daedalus cmets 添加
    【解决方案3】:

    我不确定它是否适用于 $_SESSION,但如果它是一个数组,那么 array_shift() 将是您正在寻找的:

    array_shift($_SESSION['del']);
    

    【讨论】:

      猜你喜欢
      • 2021-03-22
      • 1970-01-01
      • 2012-03-09
      • 2016-08-02
      • 2012-05-09
      • 2012-12-02
      • 2019-07-18
      • 1970-01-01
      • 2022-11-27
      相关资源
      最近更新 更多