2011-03-07 201 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