如何简化此基本循环?

时间:2013-03-26 00:33:33

标签: php loops for-loop

我的代码几乎就是这样.....

//get the row info
$Row1 = $FullTable->find('div[class=ismPitchRow1]',0);  
$Row2 = $FullTable->find('div[class=ismPitchRow2]',0);  
$Row3 = $FullTable->find('div[class=ismPitchRow3]',0);  
$Row4 = $FullTable->find('div[class=ismPitchRow4]',0);  
$Row5 = $FullTable->find('div[class=ismPitchRow5]',0);  

//Loop 5 times. One for each row on the pitch.
for ($i=1; $i<=5; $i++)
    {
    if ($i = 1) { echo $Row1; }
    if ($i = 2) { echo $Row2; }  
    if ($i = 3) { echo $Row3; }
    if ($i = 4) { echo $Row4; }
    if ($i = 5) { echo $Row5; }
    }

它有效,但正如你所看到的那样效率不高且设计糟糕。我该如何简化这个?我知道可以通过更小的方式完成这些循环。

感谢。

2 个答案:

答案 0 :(得分:1)

使用数组的伟大发明:

//get the row info
$Row[1] = $FullTable->find('div[class=ismPitchRow1]',0);  
$Row[2] = $FullTable->find('div[class=ismPitchRow2]',0);  
$Row[3] = $FullTable->find('div[class=ismPitchRow3]',0);  

或者,更聪明......

for ($i = 1; $i <= 5; $i++) {

    $find = "div[class=ismPitchRow$i]"; 
    $Row[$i] = $FullTable->find($find,0);

}

做同样的回音:

for ($i = 1; $i <= 5; $i++) {

    echo $Row[$i];

}

但为什么不在1循环中做所有事情?

for ($i = 1; $i <= 5; $i++) {

    $find = "div[class=ismPitchRow$i]"; 
    echo $FullTable->find($find,0);

}

答案 1 :(得分:1)

我会将$Row1通过$Row5存储在array中,并使用foreach循环遍历它。

<?php
$YourArray = array(); 

array_push($YourArray,$FullTable->find('div[class=ismPitchRow1]',0),$FullTable->find('div[class=ismPitchRow2]',0),$FullTable->find('div[class=ismPitchRow3]',0),$FullTable->find('div[class=ismPitchRow4]',0),$FullTable->find('div[class=ismPitchRow5]',0));



foreach($YourArray as $row){
echo $row;
}
?>