PHP foreach循环元素索引

时间:2011-03-07 20:54:44

标签: php foreach nodelist

我有一个XPath查询,可以获取电影的类型。

$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++;
}

我将把这些值写入Db,因此是两个不同的数组。 这段代码有效,但我知道必须有一个更好的方法来做这个用2 d数组,不使用$ i计数器或更明显我还没想到的东西....任何指针???

3 个答案:

答案 0 :(得分: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"];    
}

它会自动递增,您无需在上面声明它。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

如果你想要多维度,你可以这样做:

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