如何从数组中获取每种注册类型?

时间:2018-08-18 13:53:43

标签: php

我有一个数组,其中的请求数据具有以下名称和姓氏数组:

"name" => array:2 [▼
        1 => array:1 [▼
          1 => "Jake"
        ]
        4 => array:1 [▼
          1 => "John"
        ]
      ]
      "surname" => array:2 [▼
        1 => array:1 [▼
          1 => "W"
        ]
        4 => array:1 [▼
          1 => "K"
        ]
      ]
      ]

我想在参与者表中插入每个参与者的姓名,姓氏和registration_type_id。这样看来,可以存储每个参与者的姓名和姓氏。但是如何获取每个参与者的registration_type_id(在这种情况下,Jke为1,John为4)?

foreach ($request->all()['name'] as $key => $name) {

            $participant_result = Participant::create([
                'name' => $name[1],
                'surname' => $request['surname'][$key][1],
                'registration_type_id' => how to get this???
            ]);

        }

参与者Jake的registration_tpye_id为“ 1”,而约翰为“ 4”,就像在数组中一样:

"name" => array:2 [▼
        1 => array:1 [▼
          1 => "Jake"
        ]
        4 => array:1 [▼
          1 => "John"
        ]
      ]
      "surname" => array:2 [▼
        1 => array:1 [▼
          1 => "W"
        ]
        4 => array:1 [▼
          1 => "K"
        ]
      ]

附加提供的示例数据

"name" => array:2 [
    1 => array:2 [
        1 => "Jake" 
        2 => "John"
        ] 
    4 => array:1 [
        1 => "Adam"
        ]
    ]
    "surname" => array:2 [
        1 => array:2 [
            1 => "W" 
            2 => "K"
            ] 
    4 => array:1 [
        1 => "L"
        ]
    ]

1 个答案:

答案 0 :(得分:1)

只需在foreach循环中使用$key变量。

...
'registration_type_id' => $key
...

更新:-根据提供的数据集,您必须按如下所述对其进行解析。

foreach ($request->all()['name'] as $key => $nameArray) {
    foreach ($nameArray as $nameKey => $name) {
        $participant_result = Participant::create([
                    'name'                 => $name,
                    'surname'              => $request['surname'][$key][$nameKey],
                    'registration_type_id' => $key
        ]);
    }
}

为什么:-:由于用户以其用户ID作为键,在registration_type_id下分组为一个子数组(我想,虽然不确定这样命名他们{ {1}} ),我们还必须遍历子数组。