داده‌ساختار آرایه‌ی دوبعدی در زبان برنامه‌نویسی پی‌اچ‌پی (PHP)

داده‌ساختار آرایه در زبان برنامه‌نویسی پی‌اچ‌پی (PHP)

سلب مسئولیت: ساختارداده‌ی آرایه‌ی پی‌اچ‌پی (PHP) پیاده سازی شده در این بخش، برای استفاده در توسعه نیست، فقط برای اهداف آموزشی است. بنابراین در صورت تمایل از آن با مسئولیت خود استفاده کنید.

در پی‌اچ‌پی (PHP) خود ساختارداده‌ی آرایه بر اساس ساختارداده‌ی دیگری پیاده‌سازی می‌شود. این ساختار‌داده‌ی زیرین، جدول هش است. بنابراین تقریباً تمام خصوصیات و عملیات ساختار‌داده‌ی آرایه‌ی مورد نظر، باید به ویژگی‌ها و عملیات جدول هش ترجمه شوند. به عنوان مثال، اگر برای دسترسی به آیتم $i در یک آرایه به یک متد GetItemAt نیاز دارید، از روشی معادل استفاده می‌کند که از قبل برای جدول هش وجود دارد.
همان‌طور که ممکن است حدس بزنید، در مورد ساختارداده‌ی آرایه، این ممکن است به عملکرد مطلوب منجر نشود. از سوی دیگر، برخی از رفتارهایی که دوست داریم در اجرای ساختار‌داده‌ی آرایه وجود داشته باشند، ممکن است وجود نداشته باشند! به عنوان مثال در بسیاری از زبان‌های برنامه‌نویسی. (مانند C، C++، جاوا، و غیره) هنگام دسترسی به یک اندیس خارج از محدوده در یک آرایه با یک استثنا مواجه می‌شوید.

در واقع، وضعیت اخیر توضیح خوبی دارد. آرایه ها در پی‌اچ‌پی (PHP) پویا هستند و برای استفاده‌ی آسان از آن‌ها بسیار کاربردی هستند. بنابراین می‌توانید بدون برخوردن به یک استثنا به یک اندیس تعریف‌نشده در آرایه دسترسی داشته باشید یا حتی آن را اختصاص دهید.

در هر صورت، ما می‌دانیم که پیاده‌سازی ساختار‌داده‌ی ساده‌ای در داخل خود پی‌اچ‌پی (PHP) وجود ندارد (و صادقانه بگویم که در دنیای واقعی نیازی به پیاده‌سازی چنین چیزی وجود ندارد). در اینجا ما سعی می‌کنیم همان نگرشی را برای آرایه‌های ساده (مانند سایر زبان‌های رایج) در پی‌اچ‌پی (PHP) ایجاد کنیم. از طرف دیگر، اگر شخصی تمایل به پیاده‌سازی چنین قابلیتی برای جامعه‌ی پی‌اچ‌پی PHP دارد، بهتر است روند توسعه افزونه‌ی پی‌اچ‌پی (PHP) را طی کند و چنین ابزارهایی را بسازد. (و در آن صورت، این پیاده‌سازی، یک کد ساختار‌داده‌ای در زبان برنامه‌نویسی C خواهد بود)

خوب، صحبت کافی است! بیایید به عمل بپردازیم.

A two array data structure implementation in PHP, version 1

A two array data structure implementation in PHP, version 2

A two array data structure implementation in PHP, version 3