Laravel 8 中如何将$request->all()数组拆分为两个独立数组
方案1:使用Laravel Request内置方法(最简洁)
因为你用的是Laravel的请求对象,直接调用自带的only()和except()方法即可快速完成拆分,不需要手动循环:
// 提取指定键组成第一个数组 $first_array = $request->only(['key1', 'key2', 'key3', 'key4', 'key5']); // 排除上述指定键,剩下的所有值组成第二个数组 $second_array = $request->except(['key1', 'key2', 'key3', 'key4', 'key5']);
方案2:修改你现有的循环逻辑
你的原有代码的问题是遇到key6就直接终止循环,且把key6也塞进了第一个数组,只需加个标记位判断分区即可:
$first_array = []; $second_array = []; $startFillSecond = false; foreach ($request->all() as $key => $value) { // 遇到key6开始,后续所有值都归第二个数组 if ($key === 'key6') { $startFillSecond = true; } if (!$startFillSecond) { $first_array[$key] = $value; } else { $second_array[$key] = $value; } }
方案3:纯PHP数组函数拆分
如果你不想手动循环,也可以用PHP原生数组函数完成拆分:
$all_data = $request->all(); // 获取所有键名,找到key6的位置作为拆分点 $split_pos = array_search('key6', array_keys($all_data)); // 保留键名拆分数组 $first_array = array_slice($all_data, 0, $split_pos, true); $second_array = array_slice($all_data, $split_pos, preserve_keys: true);
内容的提问来源于stack exchange,提问作者Mark_
相关产品推荐
相关产品推荐

