tôi có các mảng sau:foreach lồng nhau()
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)
)
)
)
Tôi đang sử dụng foreach lồng nhau() để đi bộ qua các yếu tố trong mảng bên ngoài nhưng khi nói đến phun ra danh sách các tác giả tôi gặp vấn đề. Cụ thể là vấn đề xuất ra mỗi một (nhiều) lần bởi vì sự điên rồ foreach() làm tổ. Điều gì sẽ là một cách tiếp cận tốt hơn làm tổ foreach() vòng trong ví dụ này?
UPDATE (Với giải pháp)
Đây là vòng lặp tôi giải quyết trên, một chút lộn xộn (IMHO) nhưng nó hoạt động:
$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";
}
có vẻ tốt, có thể bạn nên đăng mã vòng của mình? –
vòng lặp lồng nhau không theo mặc định là một điều xấu. cho phép xem một số mã. Đoán hoang dã đầu tiên của tôi là bạn ghi đè lên một biến từ vòng ngoài trong vòng lặp bên trong :) – Rufinus
Đăng mã vòng lặp của bạn. Nesting foreach là tốt (sử dụng mảng assoc sẽ giúp bạn gỡ lỗi) – Dirk