PHP foreach Loop Element Index
У меня есть запрос 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 ответа
Решение
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"];
}
Это автоматически увеличивает, и вам не нужно объявлять это выше.
Если вы ищете многомерный, вы можете сделать:
$genres = array();
foreach($genreXpath as $node) {
$genre = $node->attributes();
$genres[] = array($node["name"], $node["id"]);
}