यदि आपको पहले या अंतिम को छोड़कर हर तत्व के लिए कुछ करने की आवश्यकता है और केवल अगर सरणी में एक से अधिक तत्व हैं, तो मैं निम्नलिखित समाधान पसंद करता हूं।
मुझे पता है कि मेरे पहले एक / एक साल से ऊपर और पोस्ट किए गए कई समाधान हैं, लेकिन यह कुछ ऐसा है जो मुझे लगता है कि अपने आप में काफी सुरुचिपूर्ण है। चेक प्रत्येक लूप भी एक बूलियन चेक है जो एक संख्यात्मक "i = (काउंट -1)" चेक के विपरीत है, जो कम ओवरहेड के लिए अनुमति दे सकता है।
लूप की संरचना अजीब लग सकती है, लेकिन आप इसे HTML तालिका टैग्स में थ्रेड (शुरुआत), tfoot (अंत), tbody (वर्तमान) के क्रम से तुलना कर सकते हैं।
$first = true;
foreach($array as $key => $value) {
if ($first) {
$first = false;
// Do what you want to do before the first element
echo "List of key, value pairs:\n";
} else {
// Do what you want to do at the end of every element
// except the last, assuming the list has more than one element
echo "\n";
}
// Do what you want to do for the current element
echo $key . ' => ' . $value;
}
उदाहरण के लिए, वेब डेवलपमेंट के संदर्भ में, यदि आप अनऑर्डर किए गए सूची (ul) में अंतिम को छोड़कर हर तत्व में बॉर्डर-बॉटम जोड़ना चाहते हैं , तो आप पहले (CSS) को छोड़कर हर एलिमेंट में बॉर्डर-टॉप जोड़ सकते हैं : IE7 + और फ़ायरफ़ॉक्स / वेबकिट द्वारा समर्थित पहला-बच्चा इस तर्क का समर्थन करता है, जबकि: पिछला बच्चा IE7 द्वारा समर्थित नहीं है)।
आप प्रत्येक और हर नेस्टेड लूप के लिए $ पहले चर का फिर से उपयोग करने के लिए स्वतंत्र महसूस कर सकते हैं और चीजें ठीक काम करेंगी क्योंकि हर लूप पहले पुनरावृत्ति की पहली प्रक्रिया के दौरान $ फर्जी बनाता है (इसलिए ब्रेक / अपवाद मुद्दों का कारण नहीं होगा) ।
$first = true;
foreach($array as $key => $subArray) {
if ($first) {
$string = "List of key => value array pairs:\n";
$first = false;
} else {
echo "\n";
}
$string .= $key . '=>(';
$first = true;
foreach($subArray as $key => $value) {
if ($first) {
$first = false;
} else {
$string .= ', ';
}
$string .= $key . '=>' . $value;
}
$string .= ')';
}
echo $string;
उदाहरण आउटपुट:
List of key => value array pairs:
key1=>(v1_key1=>v1_val1, v1_key2=>v1_val2)
key2=>(v2_key1=>v2_val1, v2_key2=>v2_val2, v2_key3=>v2_val3)
key3=>(v3_key1=>v3_val1)