首先,你好,我目前正在制作一个报告系统,它接受6个字段(6个选择,它们都是倍数)。
我以数组的形式接收它们的输入,并且需要处理每个字段的每个值
例如,让我们给出字段A、B和C。
字段A具有值1、2、3。
字段B的值为4、5、6。
字段C的值为7、8、9。
我需要让代码像这样运行并返回
1-4-7
1-4-8
1-4-9
1-5-7
1-5-8
1-5-9
( And so on )
实际上,我是通过嵌套几个foreach来做到这一点的,但我认为这是低效的(我花了大约30到35秒来做循环(没有考虑我在其中做的MySQL查询)。
有没有一种更有效的方法来做到这一点?
编辑
按照评论的要求,我得到了一个示例
// I'm ignoring SQL Injection since it is a example only
$status = explode("-", $_POST['status']);
$type = explode("-", $_POST['type']);
$store = explode("-", $_POST['store']);
foreach($status as $statusKey => $statusID) {
foreach($type as $typeKey => $typeID) {
foreach($store as $storeKey => $storeID) {
echo $statusID." - ".$typeID." - ".$storeID.PHP_EOL;
}
}
}
发布于 2019-03-12 04:27:47
您需要做的是在循环中准备一条语句,并在循环外执行它,因此您将拥有如下内容:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
更多信息请点击这里:https://dev.mysql.com/doc/refman/8.0/en/insert.html
在没有插入的情况下,这段代码应该非常快,因为这是非常基本的操作。
https://stackoverflow.com/questions/55109456
复制相似问题