我有一个数组QueryParameter
"STRING"
现在我有了另一个session('products')
array:9 [▼
0 => array:2 [▼
"store" => "store1"
"product" => "1"
]
1 => array:2 [▼
"store" => "store1"
"product" => "11"
]
2 => array:2 [▼
"store" => "store2"
"product" => "5"
]
3 => array:2 [▼
"store" => "store3"
"product" => "6"
]
4 => array:2 [▼
"store" => "store5"
"product" => "16"
]
5 => array:2 [▼
"store" => "store5"
"product" => "18"
]
]
我要做的是动态创建会话数组并从session('stores')
获取匹配的值。
假设我从array:4 [▼
0 => "store1"
1 => "store2"
2 => "store3"
3 => "store5"
]
获取第一个值,即session('products')
现在我将检查session('stores')
任何商店名称为0=>"store1"
的数组,以说明它的输出将是这样的
session('products')
我尝试了什么
store1
但它说session('store1')
array:4 [▼
0 => "1"
1 => "11"
]
session('store2')
array:4 [▼
0 => "5"
]
session('store3')
array:4 [▼
0 => "6"
]
session('store5')
array:4 [▼
0 => "16"
1 => "18"
]
。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:1)
我不是laravel dev,但是这应该安全地执行任务,而不会创建任何不必要的变量,也不会在每次外循环迭代时调用count()
。
foreach(session('stores') as $i=>$store){
foreach(session('products') as $subarray){
if($subarray['store']===$store){
session()->push($store,$subarray['product']);
}
}
}
答案 1 :(得分:0)
试试这个,
handleMouseLeave
您需要更改$full_array = session('products');
$stores = session('stores');
for($i=0; $i<count($stores); $i++)
{
foreach($full_array as $arr)
{
//dd($stores[$i]);
//dd($arr['store']);
if($arr['store'] === $stores[$i])
{
session()->push($stores[$i], $arr['product']);
}
}
}
,以使其索引从0开始并在商店数量之前结束。