2012-07-10 308 views
0

我試圖讓我的數組循環在foreach循環中,但它一直循環使用同一個循環。我究竟做錯了什麼?嵌套的foreach循環,第一個循環不循環

$classes = array('red', 'blue', 'yellow', 'green', 'black', 'purple', 'grey'); 
foreach($classes as $class){ 
foreach ($html->find('.yfnc_datamodoutline1 .yfnc_tabledata1') as $element){ 
    $symbols = $element->outertext; 
    echo '<div class="'.$class.'">'.$symbols.'</div>'; 
} 

它輸出該

<div class="red">Jul 6, 2012</div> 
<div class="red">12,889.40</div> 
<div class="red">12,889.40</div> 
<div class="red">12,702.99</div> 
<div class="red">12,772.47</div> 
<div class="red">967,600</div> 
<div class="red">12,772.47</div> 

我試着讓它輸出這個

<div class="red">Jul 6, 2012</div> 
<div class="blue">12,889.40</div> 
<div class="yellow">12,889.40</div> 
<div class="green">12,702.99</div> 
<div class="black">12,772.47</div> 
<div class="purple">967,600</div> 
<div class="grey">12,772.47</div> 

回答

3

不能使用嵌套循環對於這一點,而不是顏色數組中使用索引。

$classes = array('red', 'blue', 'yellow', 'green', 'black', 'purple', 'grey'); 
$ci = 0; 
foreach ($html->find('.yfnc_datamodoutline1 .yfnc_tabledata1') as $element){ 
    $symbols = $element->outertext; 
    echo '<div class="'.$classes[$ci].'">'.$symbols.'</div>'; 
    $ci++; 
    if($ci == count($classes)) $ci = 0; 
} 
+0

謝謝,我真的很感激它,我不明白爲什麼它不工作,因爲它是在一個foreach循環。 – Suzed 2012-07-10 17:51:51