#php #arrays #loops
#php #массивы #циклы
Вопрос:
У меня есть следующий массив, который мне нужно повторить. Мне нужно получить значение заголовка, а затем каждое значение «команда» и «картинка». Как я могу это сделать? Я попробовал это, но это дало мне ошибку «Недопустимое смещение строки ‘team'».
$xml = simplexml_load_file($fileName);
//print_r($xml);
$eventHeader = $xml->title;
// standings array
$standings_arr=array();
$standings_arr["standings"]=array("header" =>(string)$eventHeader);
foreach($xml->row as $item)
{
$standings_item=array(
"team" => (string)$item->team,
"picture" => (string)$item->picture,
"v" => (string)$item->v,
"f" => (string)$item->f,
"p" => (string)$item->p
);
array_push($standings_arr["standings"], $standings_item);
}
foreach ($standings_arr as $row ) {
$header = $row['header'];
if (is_array($row))
{
foreach ( $row as $key => $value ) {
echo $value['team'];
}
}
}
Может кто-нибудь подсказать мне, пожалуйста?
Комментарии:
1. Просто проверьте это перед вторым циклом
if (is_array($row)) { foreach ($row...) { ... } }
, потомуheader
что элемент не является массивом
Ответ №1:
Если заголовок является первым элементом в массиве, вы можете shift
использовать массив, а затем выполнить итерацию:
$header = array_shift($standings);
foreach ($standings as $standing) {
if (! is_array($standing)) continue;
if (isset($standing['team'])) {
echo $standing['team'];
}
}
Комментарии:
1. А что, если в этом массиве, например, есть ключ «нижнего колонтитула»?
2. Теперь я изменил приведенный выше код, теперь я получаю значение заголовка, но все еще получаю то же предупреждение о «echo $value [‘team’];»
3. Я редактирую приведенный выше код, если он не работает, отредактируйте свой вопрос со всем определением массива.
4. Это не работает, поэтому я редактирую приведенный ниже код.
5. У меня получилось так foreach ($standings_arr как $standing) { //echo «<br><b># $num</b><br>»; foreach ($standing как $key=> $value) { if (! is_array($value)) {//echo «$key: $value <br>»; echo $value .»<br>»; } else { if (isset($value[‘team’])) { echo $value[‘team’] .»<br>»; } } } }