从给定的会话数组中选择项目并将其存储在laravel中的其他会话数组中

时间:2017-03-09 15:43:11

标签: php arrays laravel laravel-5 laravel-5.3

我有一个数组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" ] 。任何人都可以帮我解决这个问题吗?

2 个答案:

答案 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开始并在商店数量之前结束。

相关问题