如何避免使用 PHP 生成器对 MYSQL 数据进行嵌套 foreach 以提高性能?

问题描述

我有以下代码

$this->connection->transactional(function () {
        $data = $this->connection->executeQuery('SELECT * FROM faq_questions')->fetchAll();
        $faqs = $this->connection->executeQuery('SELECT * FROM faq')->fetchAll();
        $countries = $this->connection->executeQuery('SELECT * FROM countries')->fetchAll();

        foreach ($faqs as $faq) {
            foreach ($countries as $country) {
                foreach ($data as $datum) {
                    if ($datum['faq_id'] === $faq['id']) {
                        $stmt = $this->connection->prepare('INSERT INTO faq_questions ...');
                        $stmt->execute([...]);
                    }
                }
            }
        }
    });

效果很好。为了节省内存,我的团队领导建议我重构这段代码。 如何使用 PHP 生成器避免第三个 foreach

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)