2011-03-07 74 views
0

我有一个获取电影流派的XPath查询。PHP foreach循环元素索引

$genreXpath = $xml_data->xpath("//category"); 

我从$ genreXpath属性这样

$genreName=array(); 
$genresID=array(); 
$i=0; 

foreach($genreXpath as $node) { 
    $genre = $node->attributes(); 
    $genreName[$i] = $node["name"]; 
    $genresID[$i] = $node["id"];  

     $i++; 
} 

我要被这些值写入到一个数据库,因此两个不同的阵列。 这段代码可以工作,但我知道必须有更好的方式来做到这一点,无论是使用二维数组,还是使用$ i计数器或更明显的东西,我都没有想出....任何指针? ?

回答

0
foreach($genreXpath as $i=>$node) { //note $i is your index of the current $node 
    $genre = $node->attributes(); 
    $genreName[$i] = $node["name"]; 
    $genresID[$i] = $node["id"];  
} 

它自动递增,您不需要在上面声明它。

+0

您可能需要删除'$ I ++' – ThiefMaster 2011-03-07 20:57:01

+0

哈,做约10秒钟后您的评论出现了。谢谢。 – jondavidjohn 2011-03-07 20:58:00

+0

非常感谢,我以另一种方式做$ node - > $ i,我会到那里。 – RonanC 2011-03-07 20:58:14

0

使用foreach($genreXpath as $key => $node) {

0

如果你寻找一个多维的,你可以这样做:

$genres = array(); 
foreach($genreXpath as $node) { 
    $genre = $node->attributes(); 
    $genres[] = array($node["name"], $node["id"]); 
} 
+0

当我编写SQL插入语句时,这将如何工作....有点偏离主题,但我们在此:) – RonanC 2011-03-07 21:02:53

+0

@ user644347 - 我会使用一个implode。加入这些值,并加入“行”。 – 2011-03-07 21:09:30

+0

不错1谢谢你的帮助 – RonanC 2011-03-07 21:11:09