2013-04-22 2 views
0

첫 번째 foreach 문 중 하나의 결과가 에코 된 후 두 번째 foreach 문에서 하나의 결과가 에코된다는 의미에서이 foreach 문을 어떻게 대체합니까? 다음은 두 가지 foreach 문입니다.foreach 문을 대체하는 방법 PHP

foreach($anchors as $a) { 
    $text = $a->nodeValue; 
    $href = $a->getAttribute('href'); 
$i++; 

if ($i > 16) { 
    if (strpos($text, "by owner") === false) { 
    if (strpos($text, "map") === false) { 


      echo "<a href =' ".$href." '>".$text."</a><br/>"; 


    } 
    } 
    } 

    } 


foreach($span as $s) { 
echo "<br>".$s->nodeValue."<br>" ; 

} 
+0

확실하지 정확히 무엇을 요구하고 있지만 계속'사용하여 시도 할 수도,'조건이 충족되면 다음 항목에서 foreach는 다시 시작됩니다. –

+0

PHP에 배열 zip 함수가 있고'foreach'에서'list'를 사용할 수있는 능력이 있다면 여기 좋을 것입니다. (예 :'foreach (array_zip ($ anchors, $ span) as list ($ a, $ s))') 불행히도, 그렇지 않습니다. – icktoofay

답변

0

글자 그대로 두 개의 foreach 문을 "병합"할 수는 없지만 each() 함수를 사용할 수 있습니다. 첫 번째 사이클이 어딘가에 배치 :

list(,$s) = each($span); 
echo "<br>".$s->nodeValue."<br>" ;