我知道如何做到这一点......我将在下面给出示例代码。但我不能动摇这种感觉,即如果不使用像$isfirstloop
这样的变量,有一种聪明的方法可以完成我想做的事。
$isfirstloop = true;
foreach($arrayname as $value) {
if ($isfirstloop) {
dosomethingspecial();
$isfirstloop = false;
}
dosomething();
}
有没有办法只在第一个循环上执行dosomethingspecial()
,而在每个循环上执行dosomething()
,而不引入像$isfirstloop
这样的变量?
谢谢!
答案 0 :(得分:7)
原谅我,如果我错过了什么,但为什么不在循环之前做你想做的事情呢?
dosomethingspecial();
foreach($arrayname as $value) {
dosomething();
}
答案 1 :(得分:4)
foreach ($arr as $i => $val)
{
if ($i == 0) { doSomethingSpecial(); } // Only happens once.
doSomething(); // Happens every time.
}
答案 2 :(得分:1)
嗯......你可以reset
数组然后看看你是否在第一把钥匙上:
reset($a); foreach($a as $k => $v) {
if(key($a)==$k) doIt();
}
答案 3 :(得分:0)
$count = count( $arr );
for ( $i = 0; $i < $count; $i++ ) {
if ( $i == 0 ) { dosomethingspecial(); }
doSomething();
}
答案 4 :(得分:0)
$elem = reset($arrayname);
dosomethingspecial();
while( ($elem = next($arrayname)) !== FALSE ) {
dosomething();
}
答案 5 :(得分:0)
您没有从替代方法中获得任何表现。你的方法很好。