PHP – آرایه های چندبعدی یا تودرتو
یک آرایه ی چندبعدی همان طور که در بالا ذکر شد، می تواند از یک آرایه ی اصلی تشکیل شده و اعضای آرایه ی اصلی هر یک خود یک آرایه ی مجزا و کامل باشد. در واقع آرایه ی چند بعدی می تواند چندین آرایه ی دیگر را دربرگیرد که می توان آن را آرایه ی تودرتو نیز نامید.
زبان php به توسعه دهنده این امکان را می دهد تا 5 لایه یا بیشتر، آرایه ها را تودرتو نماید. هر چند آرایه هایی که بیش از 3 لایه دارند (سه آرایه داخل هم تعریف می شوند) مدیریتش برای برنامه نویس دشوار شده و توصیه نمی شود.
بعد آرایه در واقع نشانگر تعداد اندیس یا شمارنده ای است که توسعه دهنده برای واکشی و دسترسی به مقدار یک المان در آرایه به آن نیاز دارد.
- برای گزینش و واکشی المانی از آرایه ی دو بعدی، توسعه دهنده به دو اندیس نیاز دارد.
- برای انتخاب و بازیابی مقدار المانی از آرایه ی سه بعدی توسعه دهنده به سه اندیس نیاز دارد.
PHP – شرح دقیق آرایه های دو بعدی (two-dimensional array)
یک آرایه ی دو بعدی در واقع آرایه ای از آرایه ها است (آرایه ی سه بعدی یک آرایه از آرایه ای از آرایه ها است).
ابتدا نگاهی به جدول زیر داشته باشید:
می توان داده های جدول بالا را به صورت زیر در آرایه ی دو بعدی ذخیره کرد:
$cars = array
(
array("Volvo",22,18),
array("BMW",15,13),
array("Saab",5,2),
array("Land Rover",17,15)
);
همان طور که می بینید آرایه ی دو بعدی $cars داخل خود چهار آرایه ی دیگر را دربر گرفته و دو اندیس بدین شرح دارد: سطر و ستون.
برای دسترسی به المان های آرایه ی مزبور، باید به دو اندیس سطر و ستون اشاره نمایید. مثال:
"; echo $cars[1][0].": In stock: ".$cars[1][1].", sold: ".$cars[1][2].".
"; echo $cars[2][0].": In stock: ".$cars[2][1].", sold: ".$cars[2][2].".
"; echo $cars[3][0].": In stock: ".$cars[3][1].", sold: ".$cars[3][2].".
"; ?>
خروجی:
Volvo: In stock: 22, sold: 18. BMW: In stock: 15, sold: 13. Saab: In stock: 5, sold: 2. Land Rover: In stock: 17, sold: 15.
برای دسترسی به المان های آرایه ی $cars می توان یک حلقه ی For تودرتو تعریف کنید (فراموش نکنید که باید به هر دو اندیس اشاره نمایید).
Row number $row"; echo "
- ";
for ($col = 0; $col < 3; $col++) {
echo "
- ".$cars[$row][$col]." "; } echo "
خروجی:
Row number 0
- Volvo
- 22
- 18
Row number 2
- BMW
- 15
- 13
Row number 3
- Saab
- 5
- 2
Row number 4
- Land Rover
- 17
- 15