我有以下陣列:嵌套的foreach()
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()嵌套,每個輸出都會出現多次(多次)的問題。在這個例子中嵌套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";
}
聽起來不錯,也許你應該張貼您的循環代碼? – 2009-08-10 22:15:16
嵌套循環默認情況下不是壞事。讓我們看看一些代碼。我的第一個猜測是你在內循環中覆蓋外循環中的一個變量:) – Rufinus 2009-08-10 22:16:44
發佈你的循環代碼。 嵌套的foreach很好(使用assoc數組可以幫助你調試) – Dirk 2009-08-10 22:17:13