在foreach中使用foreach循环在数组中为数组中的每个项插入唯一记录

时间:2016-05-01 19:33:56

标签: php

我有两个数组,一个是关联的,第二个是非关联的,我想为每个数组的每个项插入数据库中的一行。在我的代码下面$ menu和$ id是数组。这个$ id部分给了我错误,因为这本身就是一个数组....错误说“数组到字符串转换”。请帮忙!!!

foreach($menu as $label => $link) {
    $id = $request->themeLocation;
    DB::table('menus')->insertGetId([ 'label' => $label ,'url' => $link ,'child_id' =>'child-'.$id ,'menu_status' => 1  ]); 
}
在foreach中应用foreach之后,我正在使用DB

中的层次结构条目
       id   child id    url     label   menu_status

       41   child-38    about   ABOUT US    1
       42   child-39    about   ABOUT US    1
       43   child-40    about   ABOUT US    1
       44   child-38    services    Services    1
       45   child-39    services    Services    1
       46   child-40    services    Services    1
       47   child-38    contact contact 1
       48   child-39    contact contact 1
       49   child-40    contact contact 1

但我在DB中获得冗余条目我想要这个结果

       41   child-38    about   ABOUT US    1
       42   child-39    services    Services    1
       43   child-40    contact contact 1

感谢!!!

1 个答案:

答案 0 :(得分:0)

如果我理解你要做什么,这将是一种方式:

$i = 0;
$id = $request->themeLocation;

foreach($menu as $label => $link) {
    DB::table('menus')->insertGetId([ 'label' => $label ,'url' => $link ,'child_id' =>'child-'.$id[$i] ,'menu_status' => 1  ]);
    $i++;
}

我理解$id内容为[“38”,“39”,“40”],因此您必须使用数字索引($ i)访问其内容。