如何限制此循环才能获得6个值?
$countries = array();
foreach ($my_data as $node)
{
foreach($node->getElementsByTagName('a') as $href)
{
$countries[] = strip_tags(trim($href->nodeValue));
}
}
答案 0 :(得分:2)
$i = 0;
foreach($node->getElementsByTagName('a') as $href)
{
if ($i++ === 6) break;
$countries[] = strip_tags($href->nodeValue);
}
答案 1 :(得分:2)
我相信getElementsByTagName()会返回一个数组。在这种情况下,您可以:
foreach(array_slice($node->getElementsByTagName('a'),0,6) as $href)
{
$countries[] = strip_tags($href->nodeValue);
}
答案 2 :(得分:1)
如果计数器达到6,则使用计数器计算值,然后使用break
计算出循环:
$countryCount = 0
foreach($node->getElementsByTagName('a') as $href)
{
$countries[] = strip_tags($href->nodeValue);
$countryCount++
if ($countryCount >= 6) break;
}
答案 3 :(得分: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++
}
}
答案 4 :(得分:0)
我觉得这样更好:
$array = $node->getElementsByTagName('a');
for($counter = 0; $counter < min(count($array), 6); ++$counter) {
$countries[] = strip_tags($array[$counter]->nodeValue);
}
循环中的断裂是一种不好的做法,我会说。这种循环快速且易于阅读。