首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果具有会话中具有特定值的元素,则删除Array

如果具有会话中具有特定值的元素,则删除Array
EN

Stack Overflow用户
提问于 2016-07-13 07:26:27
回答 2查看 49关注 0票数 0

如果数组元素是数组,并且它有特定的元素,那么是否有可能/如何删除数组元素?我有一个来自会话的数组(我使用的是laravel 4)。

我使用它来将它添加到会话中。

代码语言:javascript
运行
复制
 Session::push('answers', array('exam_id' => $exam, 'question_id' => $index, 'answer_id' => $answer));

找出答案以及我如何删除它们

代码语言:javascript
运行
复制
$values = Session::get('answers');

 foreach ($values as $index1 => $value) { 
     if ($value['exam_id'] == $examid && $value['question_id'] == $questionid) {

             // Delete Array from session   
      }
    }

例如,如果$value['exam_id'] = 1$value['question_id'] = 2

从这里开始

代码语言:javascript
运行
复制
"answers":[{"exam_id":"1","question_id":"1","answer_id":"3"},{"exam_id":"1","question_id":"2","answer_id":"6"}] 

我想要

代码语言:javascript
运行
复制
"answers":[{"exam_id":"1","question_id":"1","answer_id":"3"}] 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-13 08:16:59

如果要从多维数组中删除特定数组,可以通过指定要删除的子数组的索引来使用unset方法。

代码语言:javascript
运行
复制
$values = Session::get('answers');

foreach ($values as $index => $value) { 
   if ($value['exam_id'] == $examid && $value['question_id'] == $questionid) {
       unset($values[$index]);    
       break;
   }
}

其结果将是:

代码语言:javascript
运行
复制
Array
(
    [0] => Array
        (
            [exam_id] => 1
            [question_id] => 1
            [answer_id] => 3
        )

)
票数 2
EN

Stack Overflow用户

发布于 2016-07-13 07:45:29

如果您需要删除整个数组本身,请调用“忘记”。

代码语言:javascript
运行
复制
Session::forget('answers');

如果需要删除数组的特定元素,我认为可以组合get和set操作。

代码语言:javascript
运行
复制
$values = Session::get('answers');
//...do something to $values, then
Session:put('answers', $values);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38345195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档