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

时间:2012-03-22 05:59:56

标签: 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;
                }
            }
        }
    }
}

遗嘱将运行并生成相关结果,但我想要额外的iteratinos不运行。换句话说

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或任何其他语言中是不可能的,但我想要一个替代方案,或者将来可能会添加它以提高性能。

3 个答案:

答案 0 :(得分:1)

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

$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;
        }
    }
}

答案 1 :(得分:1)

这只是语法糖,PHP必须与你用if做的完全相同,它不能做一些魔术。

有些人喜欢这样的语言功能,有些人则不喜欢,我自己也不情愿,因为我认为语言必须做的事情越多,学习语言的难度就越大。

答案 2 :(得分:0)

如果你想通过php做到这一点,那么你必须等待不切实际的时间。

您可以通过sql连接执行此操作。获取表的内部联接并获得结果。通过查询可以实现。这就是加入to increase performance的原因。如果您没有加入它们,您可以编写代码。我们一定会尝试提高您系统的性能。