روز برنامه‌نویس مبارک 🤩🎉 از هدایای روز برنامه‌نویس جا نمونی ⌛
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ محمدجوکار
نکته آموزشی: ترکیب آرایه‌های ایندکسی و اسوک - associative & indexed array
جامعه پی اچ پی ایجاد شده در ۰۲ شهریور ۱۴۰۱

با عرض سلام و ادب و احترام

نکته ای به نظرم جالب اومد که دوست داشتم با شما به اشتراک بزارم.

ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

زمانی که از Indexed Array استفاده می‌کنیم، مسلم هستش که همه چیز به طور خودکار از [0] ایندکس گذاری میشه و همینطور زمانی که از Associative Array استفاده میشه، همه چیز همونطور که خودمون وارد کردیم ایندکس گذاری میشه

نکته همون چیزیه که در ویدئو دیدید، گاهی در بین Associative Array، ما عضوی رو تعریف می‌کنیم که ایندکسی براش معین نکردیم که در این حالت، نحوه‌ی اینکس گذاری جالب میشه :

0349-Screenshot (478).png

همین طور که میدونید در این حالت، خود php میاد برای داده‌هایی که ما براش ایندکسی مشخص نکردیم، ایندکس گذاری میکنه و از [0] تا هرچند تا که داده‌ داشته باشیم، ایندکس میده. همینطور که در بالا میبینید من عمدا در بین داده‌های بدون ایندکس، ایندکس Mohammad رو گذاشتم ولی اگر داده‌ی بدون ایندکسی مجددا در بعد از Mohammad هم تعریف بشه، ایندکس گذاریش توسط php همون ادامه‌ی ایندکس‌های داده‌های قبل هستش. نتیجه میشه تصویر زیر:

0709-Screenshot (471).png

نکته اصلی و جالب زمانی اتفاق می‌افته که من بخوام خودم هم در همون ترکیب آرایه‌ی بالا، یک ایندکس عددی تعریف کنم!!!! مثل تصویر زیر:

aa7a-Screenshot (467).png

اما آیا در این حالت واکنش php نسبت به ایندکس گذاریه خودکار چیه؟

دو حالت داره:

۱/ اگر عددی که من قراره به عنوان ایندکس به کارش ببرم (خط۵)، قبل از اعداد بدون ایندکس نوشته شده باشه، php ازش الگو برداری میکنه و ایندکس گذاری‌هاش رو از اون عدد به بعد‌، میزاره. در تصویر بالا، نتیجه‌ی برگشتی میشه این:

2905-Screenshot (477).png

۲/ اگر عددی که من قراره به عنوان ایندکس به کارش ببرم (خط۵)، بعد از اعداد بدون ایندکس نوشته شده باشه، ۲ حالت اتفاق می‌افته:

اول/ یا مثلا ایندکس ۲ که من نوشتم، قبلا توسط php به یک داده‌ی دیگه متعلق بوده، که اینطوری عملیات rename اتفاق می‌افته مثل تصویر زیر:

efc2-Screenshot (476).png

عدد ۱۴ از بین میره و داده ای که من به ایندکس دوعه (۲) خودم داده بودم، به ایندکس ۲ای که توسط php قرار گرفته، داده میشه

5703-Screenshot (471).png

دوم/ اگر ایندکسی که من نوشتم، قبلا توسط php استفاده نشده باشه،

اعدادی که ما قبل از اون بوده رو از [0] ایندکس گذاری میکنه ولی وقتی به عدد من میرسه،‌ ما بقی رو از عدد من به بعد ایندکس گذاری میکنه،‌ به نحوه‌ی زیر:

9754-Screenshot (473).png

19e5-Screenshot (474).png

امیدوارم منظور رو رسونده باشم و بدردتون خورده باشه,,, موفق، پیروز و سربلند باشید

سلام آقا محمد عزیز

خواستم تشکری کنم از زحمتی که برای توضیحی این مسئله کشیدید من اتفاقا همین الان که داشتم تمرین میکردم به این مشکل برخوردم و با سرچ هم چندان مشکلم حل نشد اما بعد دیدن توضیحات شما از پرسیدن سئوال منصرف شدم و در عوض از شما سپاسگذاری کردم

احسان پژمان ۱۹ مهر ۱۴۰۱، ۱۸:۴۰

خواهش میکنم

خوشحالم که مشکلتون رو حل کرده♥️

محمدجوکار ۱۹ مهر ۱۴۰۱، ۲۳:۱۵