PHP foreach Loop Element Index - PullRequest
       9

PHP foreach Loop Element Index

0 голосов
/ 07 марта 2011

У меня есть запрос 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++;
}

Я собираюсь записать эти значения в БД, следовательно, в два разных массива. Этот код работает, но я знаю, что должен быть лучший способ сделать это, используя массив 2 d, не используя счетчик $ i или что-то более очевидное, чего я не понял .... какие-либо указатели ???

Ответы [ 3 ]

0 голосов
/ 07 марта 2011

Использование foreach($genreXpath as $key => $node) {

0 голосов
/ 07 марта 2011

Если вы ищете многомерный, вы можете сделать:

$genres = array();
foreach($genreXpath as $node) {
    $genre = $node->attributes();
    $genres[] = array($node["name"], $node["id"]);
}
0 голосов
/ 07 марта 2011
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"];    
}

Он автоматически увеличивается, и вам не нужно объявлять его выше.

...