php - 在php中的foreach循环中使用where条件

标签 php mysql

嘿伙计们,我昨天有一个想法。你能帮我解决这个问题吗? 这是代码

foreach($categoriesDetail as $categories)
{
    foreach($subCategoriesDetail as $subCategories)
    {
        if($categories->id == $subCategories->cat_id)
        {
            foreach($teamsDetail as $team)
            {
                if($subCategories->id == $team->sub_cat_id)
                {
                    echo $team->name;
                }
            }
        }
    }
}

该意志将运行并产生正确的结果,但我希望不要运行额外的迭代。换句话说

foreach($categoriesDetail as $categories)
{
    foreach($subCategoriesDetail as $subCategories where $categories->id == $subCategories->cat_id)
    {
        foreach($teamsDetail as $team where $subCategories->id == $team->sub_cat_id)
        {
            echo $team->name;
        }
    }
}

我知道这在 php 或任何其他语言中都是不可能的,但我想要一个替代方案,或者将来他们可能会添加它以提高性能。

最佳答案

您可以更改数组的结构方式,使其采用以下形式:

$subCategoriesDetail[$cat_id] = array();

$teamsDetail[$sub_cat_id] = array();

然后你会使用:

foreach($categoriesDetail as $categories)
{
    foreach($subCategoriesDetail[$categories->id] as $subCategories)
    {
        foreach($teamsDetail[$subCategories->id] as $team)
        {
            echo $team->name;
        }
    }
}

关于php - 在php中的foreach循环中使用where条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9817188/

相关文章:

mysql - delphi 和 mysql 数据库帮助

php - 如何计算两个日期之间的天数?

php - 面向对象的方式从表中选择记录并存储在多维数组中

PHP 通用表单生成器/生成器

php - 使用onClick函数更新数据库信息

php - 延迟加载 MySQL 结果 PHP

php - 如何使用数组更新 MySQL 表中的多个字段?

Mysql, 树, 分层查询, 性能

php - Mysql 计数,如果,否则

mysql - 统计用户 session 数