У меня есть следующий массив:Уплотненный Еогеасп()
Array (
[1] => Array (
[spubid] => A00319
[sentered_by] => pubs_batchadd.php
[sarticle] => Lateral mixing of the waters of the Orinoco, Atabapo
[spublication] => Acta Cientifica Venezolana
[stags] => acta,confluence,orinoco,rivers,venezuela,waters
[authors] => Array (
[1] => Array (
[stype] => Author
[iorder] => 1
[sfirst] => A
[slast] => Andersen)
[2] => Array (
[stype] => Author
[iorder] => 2
[sfirst] => S.
[slast] => Johnson)
[3] => Array (
[stype] => Author
[iorder] => 3
[sfirst] => J.
[slast] => Doe)
)
)
)
Я использую вложенный Еогеасп(), чтобы пройти через элементы во внешнем массиве, но когда дело доходит до выплевывать список авторов, которых я являюсь сталкиваясь с проблемами. А именно проблема вывода каждого из нескольких (кратных) времен из-за сумасшедшего foreach() вложенности. Что было бы лучше, чем вложенные петли foreach() в этом примере?
UPDATE (с раствором)
Здесь есть петля я завещал, немного грязный (ИМХО), но это работает:
$sauthors = NULL;
$stitle = NULL;
foreach($apubs as $apub)
{
$stitle = $apub['sarticle'];
foreach($apub as $svar=>$sval)
{
if($svar === "authors")
{
foreach($sval as $apeople)
{
$sauthors .= $apeople['slast'].", ".$apeople['sfirst']."; ";
}
}
}
echo "$sauthors<br />\n$stitle<br />\n";
}
звучит хорошо, может быть, вы должны разместить свой код цикла? –
Вложенные петли по умолчанию не являются плохими. позволяет увидеть некоторый код. Моя первая дикая догадка заключается в том, что вы переписываете переменную из внешнего кольца во внутреннем цикле :) – Rufinus
Опубликуйте свой код цикла. Вложение foreach в порядке (использование вспомогательных массивов поможет вам отладить) – Dirk