我在会话中有一个数组
array:7 [▼
0 => array:2 [▼
"store" => "store1"
"product" => "1"
]
1 => array:2 [▼
"store" => "store2"
"product" => "2"
]
2 => array:2 [▼
"store" => "store3"
"product" => "4"
]
]
我创建了一个函数来删除与给定时的store值匹配的数组。例如,我提供store1
它应该删除store1
数组并输出如下
array:7 [▼
0 => array:2 [▼
"store" => "store2"
"product" => "2"
]
1 => array:2 [▼
"store" => "store3"
"product" => "4"
]
]
相反,我得到了输出
array:2 [▼
1 => "store2"
2 => "store3"
]
我的功能
function removeFromSessionArray($name, $value)
{
return session()->put($name, array_diff(session()->get('stores'), [$value]));
}
有人能告诉我如何实现可能的输出?
PS。学习阵列。
答案 0 :(得分:1)
试试这个
$m = session('products');
for($i=0;$i<count($m);$i++)
{
if($m[$i]['store']==$username)
{
unset($m[$i]['store']);
unset($m[$i]['product']);
}
}
dd(array_values(array_filter($m)));
答案 1 :(得分:0)
你可以使用这个数组的简单索引([store value]。[product value]),如下所示:
array:7 [▼
'store1.1' => array:2 [▼
"store" => "store1"
"product" => "1"
]
'store2.2' => array:2 [▼
"store" => "store2"
"product" => "2"
]
'store3.4' => array:2 [▼
"store" => "store3"
"product" => "4"
]
]
在这些更改之后,您只需删除会话数组中的任何值