【问题标题】:Delete an item from an array in a Laravel session在 Laravel 会话中从数组中删除一个项目
【发布时间】:2016-11-10 23:56:31
【问题描述】:

如何使用 Sessions 从 Laravel 中的数组中只删除一个项目。当我现在尝试使用Session:pull 执行此操作时,它只会删除带有键estate.id 的整个会话对象以及数组中的所有项目。我只想匹配与从输入中接收到的 id 具有相同 id 的对象。

简化代码

$estateId = Input::get('id', null);

if ($processType == "add") {
    Session::push('estate.id', $estateId);
   }
else {
  if (in_array($estateId, $data)) {
     $value = Session::pull('estate.id', $estateId);
  }
}

【问题讨论】:

  • 可以设置和id一样的index,用它来删除。
  • @Sougata Index和ID不一样,数组输出看起来像Array ( [0] => 83968 [1] => 97798 )
  • 所以将其存储为 - Array ( [83968] => 83968 [97798] => 97798 ),而不是 push
  • 这并不能解决任何问题。内置的 Laravel 服务不可能吗
  • 有可能。毕竟它是一个数组。想一想,你一定会成功的。

标签: php arrays laravel session


【解决方案1】:

Laravel Session 服务不提供从数组中删除值的内置方法,但您可以使用一种解决方法:

Session::put('key', array_diff(Session::get('key'), ['value']));

【讨论】:

    猜你喜欢
    • 2016-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-25
    • 2019-06-06
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多