【问题标题】:How do I delete an item in an array that is in a session? php如何删除会话中的数组中的项目? php
【发布时间】:2012-02-12 07:00:04
【问题描述】:

我有一个包含数组的会话。该数组包含以下数据:

Array ( 
    [0] => /assets/img/user_photos/thumbs/9c2310c2def9981221ec37cbbafe0370.jpg 
    [1] => /assets/img/user_photos/thumbs/286b59eb3dafe2e0cf0df50e45f10250.jpg 
    [2] => /assets/img/user_photos/thumbs/4e6012cc396252594d2a05850b0a35ae.jpg 
    [3] => /assets/img/user_photos/thumbs/49ce9031319203c1911c0b9789a83ffc.jpg 
    [4] => /assets/img/user_photos/thumbs/da21379f3dc80541a087e1c4db5f929a.jpg 
    [5] => /assets/img/user_photos/thumbs/1f46378fdd7dcf7fda580e50ca92a2d0.jpg 
)

我想从这个数组中删除一个项目。当数组存储在会话中时,这怎么可能?

【问题讨论】:

    标签: php arrays session


    【解决方案1】:

    使用unset 从数组中删除元素。

    unset($array[1]);
    

    【讨论】:

      【解决方案2】:

      在非黑客环境中,超全局数组 $_SESSION 引用会话中的所有数据。 所以你可以这样删除一个条目:

      unset($_SESSION['indexToYourArray'][0]);
      

      (您没有提到您的索引存储在哪个会话变量中)。如果数组是会话内容,则代码应读取:

      unset($_SESSION[0]);
      

      【讨论】:

        【解决方案3】:

        你可以使用

        unset($_SESSION['Array_name']['index_tobe_delete']);
        

        $_SESSION['Array_name']['index_tobe_delete'] = "" ;
        

        【讨论】:

        • 第二个,==,只会比较,不会取消设置。
        • -1,即使使用= "",它也不会取消设置,而是将其设置为空字符串。
        【解决方案4】:

        您可以使用unset()

        例如:

        $_SESSION['abc'] =  Array ('foo','bar');
        

        删除bar:

        unset($_SESSION['abc'][1]);
        

        【讨论】:

          【解决方案5】:

          使用未设置

          <?php
          unset($_SESSION['array'][0]);
          var_dump($_SESSION);
          ?>
          

          【讨论】:

            【解决方案6】:

            您可以取消设置数组项:

            unset($_SESSION['array'][0]);
            

            【讨论】:

              【解决方案7】:

              使用这个

              $array = array(0, 1, 2, 3);
              
              unset($array[2]);
              $array = array_values($array);
              var_dump($array);
              

              更多信息请阅读this

              【讨论】:

                【解决方案8】:
                unset($_SESSION['array_name']);
                

                【讨论】:

                • 这将取消设置他们的整个数组,而不仅仅是一项。
                猜你喜欢
                • 1970-01-01
                • 2017-07-25
                • 1970-01-01
                • 1970-01-01
                • 2016-12-10
                • 1970-01-01
                • 2011-01-14
                • 2011-04-02
                • 2015-08-29
                相关资源
                最近更新 更多