gpt4 book ai didi

php - 使用 while 或 foreach 语句启动相同的循环

转载 作者:行者123 更新时间:2023-11-29 05:44:17 24 4
gpt4 key购买 nike

我在 php 中有如下代码:

while($r = mysql_fetch_array($q))
{

// Do some stuff

}

其中 $q 是检索一组组成员的查询。但是,某些组将成员保存在 memcached 中,并且该 memcached 值作为 $mem_entry 存储在数组中。为了完成它,我通常会执行以下操作

foreach($mem_entry as $k => $r)
{

// Do some stuff

}

问题来了。我不想将两个相同的代码块(//do some stuff 部分)嵌套在两个不同的循环中,只是因为在一种情况下我必须将 mysql 用于循环而另一个使用 memcached。有什么方法可以用 while 或 foreach 来切换启动循环吗?换句话说,如果 $mem_entry 有一个非空值,循环的第一行将是 foreach($mem_entry as $k => $r),或者如果它是空的,循环的第一行将是 while( $r = mysql_fetch_array($q))

编辑

好吧,在我写完这篇文章几秒钟后,我就得出了解决方案。图我会把它留给可能遇到这个问题的其他人。我首先将 $members 的值设置为 memcached 值。如果那是空白,我运行 mysql 查询并使用 while 循环将所有记录传输到一个名为 $members 的数组。然后我使用 foreach($members as as as as as $k => $r) 启动循环。基本上,我每次都使用 foreach 循环,但是 $members 的值根据 memcached 中是否存在它的值而设置不同。

最佳答案

为什么不将 doSomeStuff() 重构为一个在每个循环中调用的函数。是的,您需要查看这是否会导致性能下降,但除非影响很大,否则这是一种避免代码重复的简单方法。

如果有一种方法可以按照您的建议进行切换,我不知道。

关于php - 使用 while 或 foreach 语句启动相同的循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3940798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com