Ho la seguente matrice:foreach nidificati()
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)
)
)
)
Sto usando un foreach nidificato() per camminare attraverso gli elementi nella matrice esterno, ma quando si tratta di sputare fuori la lista degli autori Sono incorrere in problemi. Vale a dire il problema di emettere ciascuna di esse (più volte) a causa del pazzo nidificazione di foreach(). Quale sarebbe un approccio migliore rispetto all'annidamento dei cicli foreach() in questo esempio?
UPDATE (con soluzione)
Ecco l'anello ho optato per, un po 'confuso (IMHO), ma funziona:
$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";
}
suona bene, forse si dovrebbe pubblicare il tuo codice di ciclo? I loop nidificati di –
non sono di default una cosa negativa. vediamo un po 'di codice. La mia prima ipotesi è quella di sovrascrivere una variabile da outerloop nel ciclo interno :) – Rufinus
Pubblica il tuo codice di loop. Nido foreach va bene (utilizzando gli array associati potrebbe facilitare il debug) – Dirk