2014-10-30 55 views
0
foreach($xml->xpath('programme[@channel="1"]') as $item) { 
    if (something) { 
     echo "cat.: ".$item->{'category'}. "<br>";} 

如果我有2个“类别”选择,如何设置它获得第二个,而不是行中的第一个?Array获得第二项

+0

使用类似'if($ first){$ first = false;继续; }'跳过它? – 2014-10-30 15:29:00

+0

在foreach之前添加一个coutner,在你的循环结束时加入它,如果它不是第一个,你可以获得你的价值。 – vaso123 2014-10-30 15:29:31

回答

0

最简单的方法是使用一个计数器变量:

$i = 0; 
foreach($xml->xpath('programme[@channel="1"]') as $item) { 
    if ($i++ != 1) 
     echo "cat.: ".$item->{'category'}. "<br>"; 

然而,这将包括第一后,每类别。如果您希望第二类,你可以使用相同的方法:

$i = 0; 
foreach($xml->xpath('programme[@channel="1"]') as $item) { 
    if ($i++ == 2) 
     echo "cat.: ".$item->{'category'}. "<br>"; 
+0

以及我比较数据的时间,所以我有︰if($ time> $ start && $ time <$ end){现在什么? – user3412188 2014-10-30 15:32:11

+1

*如果我有2 * *如果它只是一个类别? – 2014-10-30 15:33:29

0

这给了你第二类,也可确保您得到的第一个类别时,有没有第二个:

foreach ($xml->xpath('programme[@channel="1"]') as $item) { 
    if (something) { 
     if (isset($item->category[1]) && !empty($item->category[1])) { 
      echo 'cat.: '.$item->category[1].'<br />'; 
     } else { 
      echo 'cat.: '.$item->category[0].'<br />'; 
     } 
    } 
} 
+0

不幸的是它不会为我工作,仍然显示第一而不是第二。我想提供完整的信息:我通过简单的XML获取,它的一部分在这里:http://wklej.to/2zmFZ。我的PHP脚本如下所示:http://wklej.to/13OQB。正如在xml文件中可以看到的,总是有两个指令提供。我的观点是获得第二个,而不是迄今为止的第一个。亲切的问候! – user3412188 2014-10-30 20:06:52

+0

@ user3412188我做了一些改变,也许现在就解决了。 – 2014-10-31 11:09:28