मैं निम्नलिखित सरणी है:नेस्टेड 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() घोंसले की वजह से प्रत्येक एक बहु (एकाधिक) बार outputting की समस्या। इस उदाहरण में घोंसले foreach() loops की तुलना में बेहतर दृष्टिकोण क्या होगा?
अद्यतन (समाधान के साथ)
यहाँ पाश मैं पर बसे, थोड़ा गंदा (IMHO) है, लेकिन यह काम करता है:
$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
अपना लूप कोड पोस्ट करें। नेस्टिंग फोरैच ठीक है (assoc arrays का उपयोग करके आपको डीबग करने में मदद मिलेगी) – Dirk