Php 如何在foreach的数组中使用foreach?
我试图将数据插入json中的数据库,其中multiple select具有多个选项标签和值。我只想像这样插入数据库:-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"
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
insidearray
好的,我的问题是因为foreach inside array。那么,我如何实现foreach inside array。无论如何,要做到这一点。使用foreach
生成第二个数组,然后将其放入你想要的第一个数组中。谢谢你的想法。但是我怎么做呢?你不能使用foreach
insidearray
好的,我的问题是因为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,但多数组索引的捕捉效果很好!