php - 二维数组在 laravel 中没有循环
问题描述
我有一个片段,我试图在一个数组上循环 2 次,如下所示:
$rules = Rule::get();
$segments = [];
foreach ($rules as $rule) {
$segments['segment = "basic"']['serviceType']= $rule->segment;
foreach($rule->steps as $key => $value) {
$segments['segment = "basic"'][$key] = $value;
}
}
return $segments;
所以我期望从该代码中得到如下:
'segment = "BASIC"' => [
'serviceType = "3"' => [
'item1' => 1,
'item2' => 2
],
'serviceType = "2"' => [
'item1' => 1,
'item2' => 2
],
'serviceType = "1"' => [
'item1' => 1,
'item2' => 2
],
但我得到的是如下
^ array:1 [
"segment = "basic"" => array:3 [
"serviceType" => "1"
"item1" => 1
"item1" => 2
]
]
所以我想要的是segment = "basic" repeats as the count of
Rule` 模型中的数组我知道我的代码正在返回 5 个模型实例,但我猜在某些时候代码会覆盖数组而不是循环它。提前致谢
解决方案
您的代码没有将项目放在数组的 servicetype 部分中:这可以解决问题吗?
$rules = Rule::get();
$segments = [];
foreach ($rules as $rule) {
$segments['segment = "basic"']['serviceType = "'. $rule->segment . '"']= [] ;
foreach($rule->steps as $key => $value) {
$segments['segment = "basic"']['serviceType = "'. $rule->segment . '"'][$key] = $value;
}
}
return $segments;
推荐阅读
- reactjs - 在 React 中,当下拉列表值发生变化时,如何获取下拉列表的 ID?
- amazon-web-services - 将请求转发到 AWS 上的多个目标服务器
- sql - VBA SQL 查询中的问题引用列
- r - 在每个逗号后查找第二个空格
- php - 如何在 Wordpress 中将子类别添加到多个父类别
- swiftui - 如何在 SwiftUI 中为 WebView 实现刷新按钮
- java - Spring Rest 在上下文中设置自定义对象
- c - 写入系统调用表函数地址时内核模块崩溃
- python - 在创建数据库时提供枚举
- rabbitmq - 无法在 URI 中指定的队列中设置接收响应