2011-01-18 2 views
0

이 루프를 제한하여 6 개의 값만 얻으려면 어떻게해야합니까? 루프 밖으로이 루프를 특정 번호로 제한하려면 어떻게합니까?

$countries = array(); 
foreach ($my_data as $node) 
{ 
    foreach($node->getElementsByTagName('a') as $href) 
    { 

     $countries[] = strip_tags(trim($href->nodeValue)); 


    } 
} 
+0

당신의 getElementsByTagName ('는이')는 PHP 함수이다합니까? 어디에서 정의 했습니까? –

+1

@Eric ['DOMDocument :: getElementsByTagName'] (http://php.net/manual/en/domdocument.getelementsbytagname.php) – lonesomeday

답변

1

값을 계산하는 카운터를 사용하고 break은 카운터는 6 도달하는 경우 :

$array = $node->getElementsByTagName('a'); 
for($counter = 0; $counter < min(count($array), 6); ++$counter) { 
    $countries[] = strip_tags($array[$counter]->nodeValue); 
} 

:

$countryCount = 0 
foreach($node->getElementsByTagName('a') as $href) 
    { 
     $countries[] = strip_tags($href->nodeValue); 
     $countryCount++ 
     if ($countryCount >= 6) break; 
    } 
+0

희망이 없습니다! –

2
$i = 0; 
foreach($node->getElementsByTagName('a') as $href) 
{ 
    if ($i++ === 6) break; 
    $countries[] = strip_tags($href->nodeValue); 

} 
+0

이 작동하지 않는 것 같습니다! –

+0

foreach 루프 내에서 반복 횟수를 계산하는 변수를 추가하면 내 생각에 foreach 루프를 사용하는 목적이 사라집니다. 루프 내부의 'break'명령어는이 경우에는별로 좋지 않습니다. –

0

내가 더 나은 그런 식으로 생각 루프 안에서의 휴식은 내가 말한 나쁜 습관이다. 이런 종류의 루프는 빠르고 읽기 쉽습니다.

2

getElementsByTagName()은 배열을 반환한다고 생각합니다. 당신이 수있는 경우 :

foreach(array_slice($node->getElementsByTagName('a'),0,6) as $href) 
{ 
    $countries[] = strip_tags($href->nodeValue); 

} 

참조 : http://us.php.net/manual/en/function.array-slice.php

+0

이것은 Gentautas의 솔루션보다 비쌉니다. –

+0

@Dustin : 아마도. 그러나 그것이 6 가지 요소에 대해서만 있다는 것을 잊지 마십시오, 차이는 아마도 무시 될 것입니다. 나는 Dustin의 해결책이 foreach 루프 내부의 휴식을 암시하지 않기 때문에 더 깨끗하다고 ​​생각한다. –

+0

이것은 또한 작동하지 않습니다 !! –

1

이것은 내가 어떻게 할 것입니다 ...

$countries = array(); 

$countryCount = 0; 
$countryLimit = 6; 
foreach ($my_data as $node) 
{ 
    foreach($node->getElementsByTagName('a') as $href) 
    { 

     $countries[] = strip_tags(trim($href->nodeValue)); 

if($countryCount == "$countryLimit") 
{ 
break; 
} 

$countryCount++ 


    } 
} 
관련 문제