প্রথম বা শেষটি ব্যতীত যদি প্রতিটি উপাদানের জন্য আপনার কিছু করার প্রয়োজন হয় এবং কেবল অ্যারেতে একাধিক উপাদান থাকে তবে আমি নিম্নলিখিত সমাধানটি পছন্দ করি।
আমি জানি আমার উপরে এক মাস আগে ও উপরে পোস্ট করা বেশ কয়েকটি সমাধান রয়েছে, তবে এটি আমার নিজের মতো করে বেশ মার্জিত বলে মনে হচ্ছে। প্রতিটি লুপের চেকটিও বুলিয়ান চেক হিসাবে একটি সংখ্যার "আই = (গণনা -১)" চেকের বিপরীতে থাকে, যা কম ওভারহেডের অনুমতি দিতে পারে।
লুপটির গঠনটি বিশ্রী মনে হতে পারে তবে আপনি এটিকে এইচটিএমএল টেবিল ট্যাগগুলিতে থিয়েড (শুরু), টিফুট (শেষ), টোডি (বর্তমান) এর ক্রম সাথে তুলনা করতে পারেন।
$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;
}
উদাহরণস্বরূপ, ওয়েব বিকাশের শর্তে, আপনি যদি কোনও আনর্ডারর্ডেড তালিকার শেষে (উল) শেষ ব্যতীত প্রতিটি উপাদানগুলিতে সীমানা-নীচে যুক্ত করতে চান , তবে আপনি পরিবর্তে প্রথমটি (সিএসএস) বাদে প্রতিটি উপাদানটিতে সীমানা শীর্ষ যুক্ত করতে পারেন : আইআই 7 + এবং ফায়ারফক্স / ওয়েবকিট দ্বারা সমর্থিত প্রথম শিশুটি এই যুক্তি সমর্থন করে, যেখানে: শেষ শিশুটি আই 7 দ্বারা সমর্থিত নয়)।
আপনি প্রতিটি নেস্টেড লুপের জন্যও প্রথম ভেরিয়েবলটি পুনরায় ব্যবহার করতে পারবেন এবং জিনিসগুলি ঠিকঠাক কাজ করবে যেহেতু প্রতিটি লুপ প্রথম পুনরাবৃত্তির প্রথম প্রক্রিয়া চলাকালীন প্রথম মিথ্যা করে তোলে (সুতরাং বিরতি / ব্যতিক্রমগুলি সমস্যা সৃষ্টি করবে না) ।
$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)