我在另一个问答中找到了此代码片段,它检测了变量值是否与上一个循环中的变量值相同。
$prevValue = NULL;
while(condition) {
if ($curValue == $prevValue) {
//do stuff
}
$prevValue = $curValue;
}
但是我想做的是检查变量值是否在循环之前使用过,但是在循环中的任何地方使用,所以如果该值在1或2或10循环之前发生过,我希望它告诉我变量值是否具有通过循环之前。
使用数组存储每个值,然后检查当前值是否在数组中:
$prevValues = array();
while(/*condition*/) {
if (in_array($curValue, $prevValues)) {
//do stuff
}
$prevValues[] = $curValue;
}
正如Marc B在评论中指出的那样,您也可以采用这种方式。可能稍微快一点,但是我还没有测试过:
while(/*condition*/) {
if (isset($prevValues[$curValue])) {
//do stuff
}
$prevValues[$curValue] = 1; //set to whatever
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句