在php中使用foreach循环中的where编码
嘿,伙计们,我昨天有个主意。你能帮我做这个吗。 这是密码在php中使用foreach循环中的where编码,php,mysql,Php,Mysql,嘿,伙计们,我昨天有个主意。你能帮我做这个吗。 这是密码 foreach($categoriesDetail as $categories) { foreach($subCategoriesDetail as $subCategories) { if($categories->id == $subCategories->cat_id) { foreach($teamsDetail as $team)
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实现这一点,那么您必须等待不切实际的时间
您可以通过sql连接来实现这一点。获取表的内部联接并获得结果。这可以通过查询来实现。这就是为什么要进行连接以提高性能。如果不能将它们连接起来,则可以编写代码。我们一定会努力提高您系统的性能。这只是语法上的糖分,PHP必须和您使用if时做的完全一样,它无法发挥一些魔力
有些人喜欢这种语言功能,有些人不喜欢,我自己也不愿意,因为我认为一种语言做同样的事情的功能越多,学习该语言就越困难。+1因为“我认为一种语言做同样的事情的功能越多,学习该语言就越困难。”需要减少迭代次数以提高性能。