gpt4 book ai didi

php - 从 for 循环获取一个数组,并在 PHP 中对该数组使用另一个 for 循环

转载 作者:行者123 更新时间:2023-11-29 18:10:04 25 4
gpt4 key购买 nike

我有一个for循环,将在厕所中形成两个数组

foreach ($data as $key => $value) {
........
........
$user_insert[] = [
'keyy' => $value,
'key' => $value,
....
...
...
];
$someArray1[] = [
/*'user_id' => $insert_id,*/
'key1' => $value1,
'keyy' => $value,
.......
........
];
}

$user_insert[] 数组的计数为 4,$someArray1 的计数为 15。

在此 for 循环之后,我需要将 $user_insert 数组数据插入数据库,并使用该 Insert_id 插入下一个数组 $someArray1

foreach($user_insert as $insert_user){
$unique_user_insert = array_unique($insert_user);
//dd($unique_user_insert);
$insert_id = DB::table('users')->insertGetId($unique_user_insert);

foreach ($someArray1 as $someArray) {
$someArray['user_id'] = $insert_id;
DB::table('table_name')->insert($someArray);
}
}

所以这里的问题是第二个循环中的数据插入了 60 次(4 * 15)。我只需要插入 15 行。

数据($someArray1)来自第一个for循环,但我需要向该数组添加一个user_id,这是我在第二个插入操作后获得的for 循环。

那么我怎样才能只插入15行。

最佳答案

我假设您能够使用 $insert_id 值访问 $someArray1 来查找适当的用户数据。

foreach($user_insert as $insert_user){
$unique_user_insert = array_unique($insert_user);
$insert_id = DB::table('users')->insertGetId($unique_user_insert);

// Get the user information you need as $someArray1 should be user_id=>data
$userData = $someArray[$insert_id];
$userData['user_id'] = $insert_id;
// No need for an inner loop, just access the necessary properties of the loop you created earlier.
DB::table('table_name')->insert($userData);
}

您的标签表明您也在使用 Laravel 5。如果您使用的是 eloquent ORM,则可以通过为数据库表创建模型来清理一些插入和 ID 检索。

关于php - 从 for 循环获取一个数组,并在 PHP 中对该数组使用另一个 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47482371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com