Php 如何在foreach的数组中使用foreach?

Php 如何在foreach的数组中使用foreach?,php,laravel,foreach,Php,Laravel,Foreach,我试图将数据插入json中的数据库,其中multiple select具有多个选项标签和值。我只想像这样插入数据库:- First select dropdown:- {"select":[{"placeholder":"test","options": [{"label":"option-label-1","value":"option-value-1"}, {"label":"option-label-2","value":"option-value-2"}, {"label"

我试图将数据插入json中的数据库,其中multiple select具有多个选项标签和值。我只想像这样插入数据库:-

First select dropdown:-

 {"select":[{"placeholder":"test","options":
 [{"label":"option-label-1","value":"option-value-1"},
  {"label":"option-label-2","value":"option-value-2"},
  {"label":"option-label-3","value":"option-value-3"},
  {"label":"option-label-4","value":"option-value-4"}],
 "type":"select","name":"test","label":"test"},

Second select dropdown:-

{"placeholder":"test2","options":
[{"label":"option-label-1","value":"option-value-1"},
 {"label":"option-label-2","value":"option-value-2"},
 {"label":"option-label-3","value":"option-value-3"},
 {"label":"option-label-4","value":"option-value-4"}],
 "type":"select","name":"test2","label":"test2"}]}
但是我的代码在插入时显示错误

 Parse error: syntax error, unexpected 'foreach' (T_FOREACH), expecting ']'
我得到结果的代码是

publicfunction dropDownField($request)
{
    $value = [];
    if (key_exists("drop-name", $request)) {
        foreach ($request['drop-name'] as $key => $data) {
            $value[] = [
                "type"        => ($request['drop-type'][$key]) ? (($request['drop-type'][$key])) : null,
                "label"       => ($request['drop-label'][$key]) ? ($request['drop-label'][$key]) : null,
                "name"        => ($request['drop-name'][$key]) ? ($request['drop-name'][$key]) : null,
                "placeholder" => ($request['drop-placeholder'][$key]) ? ($request['drop-placeholder'][$key]) : null,
                  foreach ($request['drop-option-label'] as $index => $data) {
                      "options"     => [
                          'label' => ($request['drop-option-label'][$key][$index]) ? ($request['drop-option-label'][$key][$index]) : null,
                          'value' => ($request['drop-option-value'][$key][$index]) ? ($request['drop-option-value'][$key][$index]) : null,
                      ]
                    }
            ];
        }
    }

    return $value;
}

它可以是这样的:

public function dropDownField($request)
{
    $value = [];

    if (key_exists("drop-name", $request)) {
        foreach ($request['drop-name'] as $key => $data) {

        /* Defined $var here for option */
         foreach ($request['drop-option-label'] as $index => $data) {
            $var = [
              'label' => !empty($request['drop-option-label'][$index]) ? $request['drop-option-label'][$index] : null,
              'value' => !empty($request['drop-option-value'][$index]) ? $request['drop-option-value'][$index] : null,
                ];
        }


    $value[] = [
                "type"        => !empty($request['drop-type'][$key]) ? $request['drop-type'][$key] : null,
                "label"       => !empty($request['drop-label'][$key]) ? $request['drop-label'][$key] : null,
                "name"        => !empty($request['drop-name'][$key]) ? $request['drop-name'][$key] : null,
                "placeholder" => !empty($request['drop-placeholder'][$key]) ? $request['drop-placeholder'][$key] : null,
                "options"     => $var; //Defined outside foreach loop
            ];
        }
    }

    return $value;
}

它可以是这样的:

public function dropDownField($request)
{
    $value = [];

    if (key_exists("drop-name", $request)) {
        foreach ($request['drop-name'] as $key => $data) {

        /* Defined $var here for option */
         foreach ($request['drop-option-label'] as $index => $data) {
            $var = [
              'label' => !empty($request['drop-option-label'][$index]) ? $request['drop-option-label'][$index] : null,
              'value' => !empty($request['drop-option-value'][$index]) ? $request['drop-option-value'][$index] : null,
                ];
        }


    $value[] = [
                "type"        => !empty($request['drop-type'][$key]) ? $request['drop-type'][$key] : null,
                "label"       => !empty($request['drop-label'][$key]) ? $request['drop-label'][$key] : null,
                "name"        => !empty($request['drop-name'][$key]) ? $request['drop-name'][$key] : null,
                "placeholder" => !empty($request['drop-placeholder'][$key]) ? $request['drop-placeholder'][$key] : null,
                "options"     => $var; //Defined outside foreach loop
            ];
        }
    }

    return $value;
}

您只需在循环中创建另一个数组,然后根据需要将其添加到原始数组中:

publicfunction dropDownField($request)
{
    $value = [];
    if (key_exists("drop-name", $request)) {
        foreach ($request['drop-name'] as $key => $data) {

            // new "options" array
            $options = [];
            foreach($request['drop-option-label'] as $index => $data) {
                $options[] = [
                    'label' => $data ?: null,
                    'value' => !empty($request['drop-option-value'][$index]) ? $request['drop-option-value'][$index] : null,
                ];
            }

            // original "return" array
            $value[] = [
                "type"        => !empty($request['drop-type'][$key]) ? $request['drop-type'][$key] : null,
                "label"       => !empty($request['drop-label'][$key]) ? $request['drop-label'][$key] : null,
                "name"        => !empty($request['drop-name'][$key]) ? $request['drop-name'][$key] : null,
                "placeholder" => !empty($request['drop-placeholder'][$key]) ? $request['drop-placeholder'][$key] : null,
                "options"     => $options // <-- new "options" array added here
            ];
        }
    }

    return $value;
}
publicfunction下拉字段($request)
{
$value=[];
如果(key_存在(“drop name”,$request)){
foreach($request['drop-name']作为$key=>$data){
//新的“选项”数组
$options=[];
foreach($request['drop-option-label']作为$index=>$data){
$options[]=[
'label'=>$data?:空,
'value'=>!空($request['drop-option-value'][$index])?$request['drop-option-value'][$index]:null,
];
}
//原始“返回”数组
$value[]=[
“type”=>!empty($request['drop-type'][$key])?$request['drop-type'][$key]:null,
“label”=>!空($request['drop-label'][$key])?$request['drop-label'][$key]:null,
“name”=>!空($request['drop-name'][$key])?$request['drop-name'][$key]:null,
“占位符”=>!空($request['drop-placeholder'][$key])?$request['drop-placeholder'][$key]:null,

“options”=>$options/您只需在循环中创建另一个数组,然后在需要时将其添加到原始数组中:

publicfunction dropDownField($request)
{
    $value = [];
    if (key_exists("drop-name", $request)) {
        foreach ($request['drop-name'] as $key => $data) {

            // new "options" array
            $options = [];
            foreach($request['drop-option-label'] as $index => $data) {
                $options[] = [
                    'label' => $data ?: null,
                    'value' => !empty($request['drop-option-value'][$index]) ? $request['drop-option-value'][$index] : null,
                ];
            }

            // original "return" array
            $value[] = [
                "type"        => !empty($request['drop-type'][$key]) ? $request['drop-type'][$key] : null,
                "label"       => !empty($request['drop-label'][$key]) ? $request['drop-label'][$key] : null,
                "name"        => !empty($request['drop-name'][$key]) ? $request['drop-name'][$key] : null,
                "placeholder" => !empty($request['drop-placeholder'][$key]) ? $request['drop-placeholder'][$key] : null,
                "options"     => $options // <-- new "options" array added here
            ];
        }
    }

    return $value;
}
publicfunction下拉字段($request)
{
$value=[];
如果(key_存在(“drop name”,$request)){
foreach($request['drop-name']作为$key=>$data){
//新的“选项”数组
$options=[];
foreach($request['drop-option-label']作为$index=>$data){
$options[]=[
'label'=>$data?:空,
'value'=>!空($request['drop-option-value'][$index])?$request['drop-option-value'][$index]:null,
];
}
//原始“返回”数组
$value[]=[
“type”=>!empty($request['drop-type'][$key])?$request['drop-type'][$key]:null,
“label”=>!空($request['drop-label'][$key])?$request['drop-label'][$key]:null,
“name”=>!空($request['drop-name'][$key])?$request['drop-name'][$key]:null,
“占位符”=>!空($request['drop-placeholder'][$key])?$request['drop-placeholder'][$key]:null,
“options”=>$options/请尝试以下代码:

public function dropDownField($request)
{
    $value = [];
    if (key_exists("drop-name", $request)) {
        foreach ($request['drop-name'] as $key => $data) {
            $options = [];
            foreach($request['drop-option-label'] as $key => $data) {
                $options[] = [
                    'label' => ($request['drop-option-label'][$key]) ?($request['drop-option-label'][$key]) : null,
                    'value' => ($request['drop-option-value'][$key]) ? ($request['drop-option-value'][$key]) : null,
                ];
            }

           $value[] = [
                "type"        => ($request['drop-type'][$key]) ? (($request['drop-type'][$key])) : null,
                "label"       => ($request['drop-label'][$key]) ? ($request['drop-label'][$key]) : null,
                "name"        => ($request['drop-name'][$key]) ? ($request['drop-name'][$key]) : null,
                "placeholder" => ($request['drop-placeholder'][$key]) ? ($request['drop-placeholder'][$key]) : null,
                "options" => $options
            ];
        }
    }
    return $value;
}
请尝试以下代码:

public function dropDownField($request)
{
    $value = [];
    if (key_exists("drop-name", $request)) {
        foreach ($request['drop-name'] as $key => $data) {
            $options = [];
            foreach($request['drop-option-label'] as $key => $data) {
                $options[] = [
                    'label' => ($request['drop-option-label'][$key]) ?($request['drop-option-label'][$key]) : null,
                    'value' => ($request['drop-option-value'][$key]) ? ($request['drop-option-value'][$key]) : null,
                ];
            }

           $value[] = [
                "type"        => ($request['drop-type'][$key]) ? (($request['drop-type'][$key])) : null,
                "label"       => ($request['drop-label'][$key]) ? ($request['drop-label'][$key]) : null,
                "name"        => ($request['drop-name'][$key]) ? ($request['drop-name'][$key]) : null,
                "placeholder" => ($request['drop-placeholder'][$key]) ? ($request['drop-placeholder'][$key]) : null,
                "options" => $options
            ];
        }
    }
    return $value;
}


你不能使用
foreach
inside
array
好的,我的问题是因为foreach inside array。那么,我如何实现foreach inside array。无论如何,要做到这一点。使用
foreach
生成第二个数组,然后将其放入你想要的第一个数组中。谢谢你的想法。但是我怎么做呢?你不能使用
foreach
inside
array
好的,我的问题是因为foreach inside array。那么,我如何实现foreach inside array。无论如何都要这样做。使用
foreach
生成第二个数组,然后将其放入第一个数组中。谢谢你的想法。但是我怎么做呢?谢谢你的回答。但仍然有问题。@PawanDongol…你能说得更具体一点吗?好的,我的问题显示此行“label”=>($request['drop-option-label'][$key][$index])中未定义索引偏移量0的错误($request['drop-option-label'][$key][$index]):Null谢谢你的回答。但它仍然有问题。@PawanDongol…你能说得更具体一点吗?好的,我的问题显示错误在这行“label”=>($request['drop-option-label'][$key][$index])?($request['drop-option-label'][$key][$index]):nullThank@Shaunak这行显示未定义索引$request['drop-option-label'][$key][$index]我们需要依次添加
!empty
来检查值。Thank@Shaunak这行显示未定义索引$request['drop-option-label'][$key][$index]我们需要在turnary中添加
!empty
,以检查值。感谢您的回答@rya。我将在此处尝试,
$key
被覆盖!!虽然您是很棒的rya,但多数组索引的捕捉效果很好!感谢您的回答@rya。我将在此处尝试,
$key
被覆盖!!尽管您是很棒的rya,但多数组索引的捕捉效果很好!