نحوه ایجاد آرایه چند بعدی php. استفاده از آرایه های چند بعدی در PHP. آرایه PHP چیست؟

اغلب شما نیاز دارید که تمام عناصر یک آرایه PHP را تکرار کنید و برخی عملیات را روی هر عنصر انجام دهید. به عنوان مثال، می توانید هر مقدار را در خروجی قرار دهید جدول HTMLیا به هر عنصر یک مقدار جدید بدهید.

در این درس، ساختار foreach را هنگام حلقه زدن از میان آرایه های نمایه شده و مرتبط بررسی خواهیم کرد.

از طریق مقادیر عناصر حلقه بزنید

ساده ترین مورد استفاده برای foreach، حلقه زدن روی مقادیر در یک آرایه ایندکس شده است. نحو پایه:

Foreach ($array به عنوان $value) ( ​​// کاری با $value انجام دهید) // این کد پس از پایان حلقه اجرا می شود

به عنوان مثال، اسکریپت زیر از طریق فهرست کارگردانان در یک آرایه نمایه شده تکرار می شود و نام هر یک را خروجی می دهد:

$directors = array("آلفرد هیچکاک"، "استنلی کوبریک"، "مارتین اسکورسیزی"، "فریتز لانگ"); foreach ($directors به ​​عنوان $director) ( echo $director . "
"; }

کد بالا خروجی خواهد داشت:

آلفرد هیچکاک استنلی کوبریک مارتین اسکورسیزی فریتز لانگ

حلقه زدن روی کلیدها و مقادیر

آرایه های مرتبط چطور؟ هنگام استفاده از این نوع آرایه، اغلب لازم است به کلید هر عنصر و همچنین مقدار آن دسترسی داشته باشید. ساختار foreach راهی برای انجام وظیفه در دست دارد:

Foreach ($array as $key => $value) ( ​​// کاری با $key و/یا $value انجام دهید) // این کد پس از اتمام حلقه اجرا می شود

مثالی از حلقه زدن روی یک آرایه مرتبط از اطلاعات در مورد فیلم ها، کلید هر عنصر و مقدار آن را در خروجی نشان می دهد. لیست htmlتعاریف:

$movie = array("title" => "Rear Window", "director" => "Alfred Hitchcock", "year" => 1954, "minutes" => 112); پژواک"

"; foreach ($movie به عنوان $key => $value) (پژواک"
$key:
"؛ پژواک"
ارزش دلار
";) اکو"
";

این اسکریپت خروجی خواهد داشت:

عنوان: پنجره عقب کارگردان: آلفرد هیچکاک سال: 1954 دقیقه: 112

مقدار یک عنصر را تغییر دهید

اما در مورد تغییر مقدار یک عنصر در طول حلقه چطور؟ می توانید این کد را امتحان کنید:

Foreach ($myArray به عنوان $value) ($value = 123;)

با این حال، اگر آن را برای اجرا اجرا کنید، متوجه خواهید شد که مقادیر موجود در آرایه تغییر نده. دلیل آن این است که foreach با کپی 🀄مقادیر آرایه، نه با نسخه اصلی. بنابراین آرایه اصلی دست نخورده باقی می ماند.

برای تغییر مقادیر آرایه شما نیاز دارید ارتباط دادنبه ارزش برای انجام این کار، باید یک & را در مقابل متغیر مقدار در ساختار foreach قرار دهید:

Foreach ($myArray به عنوان &$value) ($value = 123;)

به عنوان مثال، اسکریپت زیر از طریق هر عنصر (نام کارگردان) در آرایه $directors حلقه می زند و از تابع PHP explode() و ساختار لیست برای تعویض نام و نام خانوادگی استفاده می کند:

$directors = array("آلفرد هیچکاک"، "استنلی کوبریک"، "مارتین اسکورسیزی"، "فریتز لانگ"); // تغییر قالب نام برای هر عنصر foreach ($directors به ​​عنوان &$director) (list($firstName, $lastName) = explode(" ", $director); $director = "$lastName, $firstName"; ) تنظیم نشده است ($director); // خروجی نتیجه نهایی foreach ($directors به ​​عنوان $director) ( echo $director . "
"; }

اسکریپت خروجی خواهد داشت:

هیچکاک، آلفرد کوبریک، استنلی اسکورسیزی، مارتین لانگ، فریتز

توجه داشته باشید که اسکریپت تابع unset() را برای حذف متغیر $director پس از اتمام اولین حلقه فراخوانی می کند. اگر قصد دارید از متغیر بعداً در اسکریپت در زمینه دیگری استفاده کنید، این تمرین خوبی است.

اگر مرجع را حذف نکنید، در صورت استفاده از متغیر $director، این خطر وجود دارد که اجرای کد بعدی به طور تصادفی به آخرین عنصر آرایه ("Lang, Fritz") اشاره کند که منجر به عواقب غیر قابل پیش بینی می شود!

خلاصه

در این آموزش، نحوه استفاده از ساختار PHP foreach برای حلقه زدن عناصر یک آرایه را بررسی کردیم. سوالات در نظر گرفته شد:

  • نحوه حلقه زدن عناصر یک آرایه
  • نحوه دسترسی به کلید و مقدار هر عنصر
  • نحوه استفاده از یک مرجع برای تغییر مقادیر در حین حلقه زدن

$arr [ 1 ] = "PHP" ;
$arr [ 2 ] = "MySQL" ;
$arr [ 3 ] = "Apache" ;
?>

عناصر آرایه را می توان در استفاده کرد نقل قول های دوگانهمانند متغیرهای معمولی، بنابراین کد

echo " $arr [ 1 ] $arr [ 2 ] $arr [ 3 ] " ;
?>

$arr [ "first" ] = "PHP" ;
$arr [ "second" ] = "MySQL" ;
$arr [ "third" ] = "Apache" ;
?>

در این حالت آرایه فراخوانی می شود انجمنی، و شاخص های آن نامیده می شود کلیدها. برای خروجی یک عنصر آرایه در یک رشته، از نقل قول (نه دوتایی و نه تکی) باید استفاده کرد:

echo " $arr [ اول ] $arr [ دوم ] $arr [ سوم ] " ;
?>

از آنجایی که آرایه های انجمنی شاخص ندارند، نوع خاصی از حلقه برای دور زدن آنها معرفی شده است - برای هر:

foreach ($arr به عنوان $key => $value)
{
echo "$key = $value
" ;
}
?>

در نتیجه حلقه، سه خط نمایش داده می شود

اول = پی اچ پی
دوم = MySQL
سوم = آپاچی

ساختار "$key =>" که اجازه دسترسی به کلید آرایه در هر یک از حلقه ها را می دهد، اختیاری است و می توان آن را حذف کرد:

foreach ($arr به عنوان $value)
{
echo "$value
" ;
}
?>

تعدادی از توابع نیز به شما امکان می دهند آرایه ها را برگردانید، مانند تابع فایل()، که یک فایل را می خواند و محتویات آن را به صورت آرایه برمی گرداند. هر عنصر آرایه مربوط به یک ردیف است.

$arr = file("text.txt");
برای ($i = 0 ; $i< count ($arr ); $i ++)
{
echo $arr[$i]. "
" ;
}
?>

یکی دیگر ویژگی مفیدیک تابع است انفجار ()، که به شما امکان می دهد یک رشته را به چند قطعه تقسیم کنید که هر کدام در یک عنصر جداگانه از آرایه قرار می گیرند:

$str = "345|[ایمیل محافظت شده]|http://www.site|ورود|رمز عبور";
$arr = explode ("|" , $str );
برای ($i = 0 ; $i< count ($arr ); $i ++)
{
echo $arr[$i]. "
" ;
}
?>

خروجی اسکریپت ممکن است به شکل زیر باشد:

345
[ایمیل محافظت شده]
http://www.site
وارد شدن
کلمه عبور

همچنین یک تابع معکوس وجود دارد - implode () که عناصر یک آرایه را با استفاده از یک جداکننده معین برای این کار در یک رشته ترکیب می کند:

$arr = "345" ;
$arr = " [ایمیل محافظت شده]" ;
$arr = "http://www.site" ;
$arr = "ورود به سیستم" ;
$arr = "رمز عبور" ;
$str = implode ("##" , $arr );
echo $str ; //345##[ایمیل محافظت شده]##http://www.
?>

اظهار نظر

به طور کلی، توابع زیادی وجود دارد که یک رشته را ایجاد می کند، در نظر گرفتن همه آنها خارج از محدوده این مقاله است.

با استفاده از تابع می توانید یک عنصر مجزا از یک آرایه را حذف کنید unset()و می توانید با استفاده از تابع وجود آرایه را بررسی کنید isset(). بیایید یک آرایه از 10 عنصر تعریف کنیم و هر عنصر زوج را نابود کنیم.

unset($arr [0]، $arr [2]، $arr [4]، $arr [6]، $arr [8]);
// بررسی کنید که آیا عناصر آرایه وجود دارد یا خیر
برای ($i = 0 ; $i< 10 ; $i ++)
{
if(isset($arr [ $i ])) echo "عنصر $arr [ $i ] تعریف شده است
" ;
other echo "Element $arr [ $i ] تعریف نشده
"
;
}
?>

نتیجه اسکریپت از خطوط زیر خواهد بود

عنصر $arr تعریف نشده است
عنصر $arr تعریف شده است
عنصر $arr تعریف نشده است
عنصر $arr تعریف شده است
عنصر $arr تعریف نشده است
عنصر $arr تعریف شده است
عنصر $arr تعریف نشده است
عنصر $arr تعریف شده است
عنصر $arr تعریف نشده است
عنصر $arr تعریف شده است

با استفاده از تابع unset()شما می توانید کل آرایه را به یکباره نابود کنید.

$arr = آرایه(9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0 );
unset($arr);
if(isset($arr )) echo "آرایه تعریف شده";
اکو "آرایه تعریف نشده است";
?>

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

و
:

$arr = "345";
$arr = " [ایمیل محافظت شده]";
$arr = "http://www.site";
$arr = "ورود به سیستم";
$arr = "رمز عبور";
پژواک"

";
print_r ($arr);
پژواک "";
?>

خروجی اسکریپت به شکل زیر است:

آرایه
=> 345
=> [ایمیل محافظت شده]
=> http://www.site
=> ورود
=> رمز عبور
)

آرایه های چند بعدی

عناصر آرایه می توانند نه تنها مقادیر اسکالر، بلکه خود آرایه ها نیز باشند. در این مورد، به اصطلاح چند بعدیآرایه ها

بیایید یک جدول مانند این داشته باشیم:

برای انجام این کار، یک آرایه دو بعدی ایجاد کنید:

$arr = آرایه(آرایه('Vasya' , 'locksmith' , 2500)
آرایه ('Misha', 'builder', 3000)
آرایه ('Andrey' , 'driver' , 2700 ));
?>

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

برای ($i = 0 ؛ $i< 3 ; $i ++)
{
برای ($j = 0 ؛ $j< 3 ; $j ++)
{
اکو " | " . $arr [ $i ][ $j ];
}
پژواک"
" ;
}
?>

نتیجه:

| واسیا | قفل ساز | 2500
| میشا | سازنده | 3000
| اندرو | راننده | 2700

همچنین می توانید از سه بعدی، چهار بعدی و غیره استفاده کنید. آرایه ها

عملیات روی آرایه ها (مجموعه دستور العمل)

1) تعیین تعداد عناصر در یک آرایه شمردن():

بیایید یک آرایه $name ایجاد کنیم:

?>

برای تعیین تعداد عناصر در یک آرایه، می توانید موارد زیر را انجام دهید:

اکو تعداد عناصر در آرایه- ' . count ($name);
?>

نتیجه:

تعداد عناصر در آرایه - 8

2) اتحاد آرایه ها

الف) دو آرایه انجمنی $a و $b ایجاد کنید:

$a = آرایه(“a” => ”aa” , “b” => “bb” );
$b = آرایه("c" => "cc" , "d" => "dd");
?>

اجازه دهید لازم باشد یک آرایه $c ایجاد شود، که شامل عناصر آرایه $a و آرایه $b باشد:

$a = آرایه("a" => "aa" , "x" => "xx" );
$b = آرایه("c" => "cc" , "d" => "dd" );
$c = $a + $b ;
پژواک"

"
;

print_r($c)؛
پژواک"
" ;
?>

نتیجه:

آرایه
[a] => aa
[x] => xx
[c] => سی سی
[d] => dd
)

ب) دو آرایه عددی $a و $b ایجاد کنید:

$a = آرایه (10 , 20 );
$b = آرایه (100 , 200 , 300 , 400 , 500 );
?>

آنها دیگر نمی توانند با ساخت $c = $a + $b; ترکیب شوند. برای ترکیب آنها، باید از تابع استفاده کنید array_merge():

$c = array_merge ($a , $b );
?>

3) مرتب سازی آرایه

بیایید از آرایه $name استفاده کنیم:

$name = array("Boss" , "Lentin" , "NAV" , "Endless" , "Dragons" , "SiLeNT" , "Doctor" , "Lynx" );
?>

فرض کنید می خواهید آرایه را به ترتیب حروف الفبا مرتب کنید، برای این کار می توانید از کد زیر استفاده کنید:

مرتب سازی ($name);
پژواک"

"
;

print_r ($name);
پژواک"
" ;
?>

نتیجه:

آرایه
=> رئیس
=> دکتر
=> اژدها
=> بی پایان
=> لنتین
=> سیاهگوش
=> NAV
=> بی صدا
)

لازم است کوتاهترین عنصر را از آرایه $name (که دارای کمترین تعداد کاراکتر است) انتخاب کنید، در این صورت می توانید از کد زیر استفاده کنید:

$name = array("Boss" , "Lentin" , "NAV" , "Endless" , "Dragons" , "SiLeNT" , "Doctor" , "Lynx" );
$min = strlen($name [ 0 ]);
$nam = $name [ 0 ];
برای ($i = 1 ؛ $i< count ($name ); $i ++)
{
$len = strlen($name [ $i ]);
اگر ($len< $min )
{
$nam = $name [ $i ];
$min = strlen($nam );
}
}
اکو "کوچکترین طول -". $nam ;
?>

4) حرکت در داخل یک آرایه

بیایید یک آرایه $num ایجاد کنیم:

$num = آرایه(1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 );
?>

اجازه دهید لازم باشد عناصر آرایه به ترتیب معکوس نمایش داده شوند، در این صورت می توانید از کد زیر استفاده کنید:

$end = end($num );
در حالی که ($end )
{
echo $end . "-"؛
$end = prev($num );
}
?>

نتیجه:

10 - 9 - 8 - 7 - 6 - 5 - 4 - 3 - 2 – 1

کد بالا قابل تغییر است:

$num = محدوده (1 , 10 );
print_r(array_reverse($num));
?>

تابع محدوده (1،10)آرایه ای (1،2،3،4،5،6،7،8،9،10) با عناصر تصادفی ایجاد می کند. تابع array_reverse()یک آرایه می گیرد و عناصر را به ترتیب معکوس قرار می دهد (10،9،8،7،6،5،4،3،2،1)

کارکرد بعد(), هر یک()نشانگر را یک عنصر به جلو حرکت دهید. تابع تنظیم مجدد ()یک اشاره گر را به 1 عنصر در آرایه برمی گرداند. بیایید از آرایه $num استفاده کنیم.

در این مقاله کوتاه به چند روش کار با آرایه ها می پردازیم. شایان ذکر است که این یکی از مهمترین انواع داده ها است و حتی تصور زبان های برنامه نویسی مدرن بدون آنها دشوار است. آرایه چیست؟
آرایه مجموعه ای ساختار یافته از داده ها است.
از ساختار آنها می توان تشخیص داد آرایه سادهیا انجمنی. نمی توان با اطمینان گفت که کدام یک بهتر است، زیرا. یک نوع یا دیگری باید با توجه به موقعیت استفاده شود.

نحوه ایجاد یک آرایه ساده در PHP

در اینجا یک آرایه ساده به نظر می رسد:

من می خواهم بلافاصله توجه شما را به داده ها جلب کنم (بله، من آن را عمداً یادداشت کردم 🙂). داده های رشته ای یا رشتههمیشه در گیومه بنویسید، مهم نیست چه اتفاقی می افتد، هم تک و هم دوتایی خواهند رفت (مهم این است که خط با یک نقل قول شروع و بسته می شود). شماره 29 یک نوع دارد عدد صحیح, یا نقل قول های عددی برای این نوع داده ها مورد نیاز نیست.
بیایید بررسی کنیم که آرایه $my_array چگونه است:

"; print_r($my_array); echo""; /* آرایه را دریافت کنید ( => صندلی => ابر => 29) */ ?>

این همان چیزی است که یک آرایه ساده به نظر می رسد.
0,1,2 شاخص های آرایه ما هستند. با کمک ایندکس ها می توانیم چیزی خاص را از یک آرایه استنباط کنیم.

همچنین، اگر بنویسیم، می توانیم همان آرایه را ایجاد کنیم:

و راه سومی هم هست:

"صندلی"، 1 => "ابر"، 2 => 29؛؟>

و چهارمی 🙂

ایندکس ها از 0 پر خواهند شد.

پی اچ پی آرایه انجمنی چیست

ما قبلاً متوجه شده ایم که یک آرایه ساده چیست. یک آرایه انجمنی در آن متفاوت است کلیدها به جای ایندکس ها. یعنی دیگر از 0،1 یا 2 برای دسترسی به مقادیر استفاده نخواهیم کرد. بیایید آرایه ساده خود را به صورت associative بنویسیم:

صندلی => ابر => 29) */ ?>

و برای تماس استفاده خواهیم کرد

به جای عدد ( فهرست مطالب) یک نام معنادار (تعاون) تنظیم می کنیم و نمایه ما اکنون می تواند فراخوانی شود کلید آرایه(مورد، آسمان، شماره). محبوب ترین و شاید راحت ترین نماد آرایه انجمنی این است:

"صندلی"، "آسمان" => "ابر"، "تعداد" => 29); ?>

آرایه چند بعدی

فقط چند کلمه در مورد این غول 🙂

آرایه ("color" => "red", "year" => "2010", "mark" => "M5"), "audi" => array ("color" => "black", "year" = > "2011"، "mark" => "TT")); print_r($auto); // خروجی آرایه echo $auto["bmw"]["mark"]; // M5 ?>

همانطور که متوجه شدید، به جای مقداری که قبلا یک رشته یا عدد بود، اکنون یک نوع داده به عنوان یک آرایه وجود دارد ( من برای شما یک آرایه در یک آرایه می سازم تا وقتی آرایه را فراخوانی می کنید یک آرایه دیگر وجود داشته باشد :)).

وظیفه
لازم است که به نوبه خود از آن عبور کنید و همه یا برخی از عناصر را پردازش کنید.
پلیس های آرایه ای

راه حل
از عبارت foreach استفاده کنید:

Foreach (آرایه $ به عنوان $value) (
// اقدام با $value
}

یا برای بدست آوردن کلیدها و مقادیر یک آرایه:

Foreach ($array به عنوان $key => $value) (
// اقدام دوم
}

راه دیگر استفاده از عبارت for است:
برای ($key = 0، $size = count($array)؛ $key // اقدام III
}

در نهایت، می‌توانید از تابع every() در ترکیب با تابع list() و دستور while استفاده کنید:

Reset($array) // نشانگر داخلی را به ابتدای آرایه بازنشانی کنید
while (list($key, $value) = هر کدام ($array)) (
// اقدام نهایی
}

بحث
حلقه foreach است ساده ترین راهتکرار با آرایه:

// foreach عبارت با مقادیر
foreach ($items به عنوان $cost) (
...
}
// دستور foreach با کلیدها و مقادیر
foreach($items به عنوان $item => $cost) (
...
}

در دستور foreach، PHP روی آرایه اصلی تکرار نمی شود، بلکه یک کپی از آن است.

در مقابل، هنگام استفاده از تابع every() و دستور for، PHP روی آرایه اصلی تکرار می شود. بنابراین، اگر یک آرایه در داخل حلقه اصلاح شود، می توانید رفتار مورد انتظار را دریافت کنید (یا نمی توانید دریافت کنید).

اگر نیاز به تغییر آرایه دارید، از یک مرجع مستقیم به آن استفاده کنید:

بازنشانی ($items);
در حالی که (list($item, $cost) = هر($items)) (
if (! in_stock($item)) (
unset($items[$item]); // آدرس دهی آرایه مستقیم
}
}

متغیرهای برگردانده شده توسط تابع every() به مقادیر آرایه اصلی اشاره نمی کنند
کپی های آنها هستند، بنابراین تغییر آنها در آرایه منعکس نمی شود. به همین دلیل است که باید متغیر $items[$item] را به جای متغیر $item تغییر دهید.

هنگام استفاده از تابع every() PHP موقعیت درون حلقه را ردیابی کرده و به خاطر می آورد. برای شروع دوباره حلقه پس از اولین پاس، باید تابع reset() را فراخوانی کنید تا نشانگر را به موقعیت قبل از حلقه برگردانید. در غیر این صورت
هر تابع () false را برمی گرداند.

حلقه for فقط برای آرایه هایی با کلیدهای عدد صحیح متوالی کار می کند. اگر طول آرایه تغییر نکند، فراخوانی مجدد تابع count() هر بار از طریق حلقه برای محاسبه متغیر $ites ناکارآمد است.

بنابراین، برای ذخیره طول یک آرایه، همیشه از متغیر $size استفاده کنید:

برای ($item = 0، $size = count($items)؛ $item ...
}

اگر ترجیح می دهید، برای صرفه جویی معقول، از یکی استفاده کنید
متغیر، سپس شمارش معکوس:
برای ($item = count($items) - 1; $item >= 0; $item--) (
...
}

نسخه انجمنی برای حلقه:

برای (بازنشانی ($array)؛ $key = key ($array)؛ بعدی ($array)) (
...
}

اگر هر عنصری دارای رشته ای با مقدار false باشد، این یک خطا ایجاد می کند، بنابراین یک مقدار به ظاهر عادی مانند 0 می تواند باعث شود که حلقه پیش از موعد به پایان برسد.

در نهایت، از تابع ()array_map برای ارسال هر عنصر به تابع پردازش استفاده کنید:

// تبدیل تمام کلمات به حروف کوچک
$lc = array_map("strtolower", $words);

آرگومان اول تابع ()array_map نام تابعی است که عنصر منفرد را تغییر می‌دهد و آرگومان دوم آرایه‌ای است که از طریق آن حلقه زده می‌شود.

این توابع عموماً نسبت به روش‌های مورد بحث قبلی انعطاف‌پذیری کمتری دارند، اما برای پردازش و الحاق چندین آرایه مناسب هستند.

اگر نمی دانید که داده ها باید به عنوان اسکالر یا آرایه در نظر گرفته شوند، باید از استفاده از دستور foreach با یک غیر آرایه جلوگیری کنید. یک راه استفاده از تابع is_array() است:

اگر (is_array ($items)) (
// کد با یک حلقه foreach برای یک آرایه
) دیگر (
// کد برای مقدار اسکالر
}

راه دیگر این است که با استفاده از تابع settype() همه متغیرها را مجبور کنیم به یک آرایه تبدیل شوند:

settype($items، "array");
// کد حلقه برای آرایه ها

این مقدار اسکالر را به یک آرایه تک عنصری تبدیل می کند و کد را با هزینه کمی اضافی بهتر می کند.

لازم نیست یک آرایه یک لیست ساده از کلیدها و مقادیر ساده باشد. هر عنصر یک آرایه می تواند حاوی آرایه دیگری به عنوان مقدار خود باشد که به نوبه خود می تواند یک آرایه و غیره را نیز در خود داشته باشد. به این ترتیب می توان آرایه های دو بعدی و سه بعدی ایجاد کرد.

آرایه های دو بعدی

آرایه دو بعدی- آرایه ای که آرایه های دیگر را به عنوان مقادیر ذخیره می کند. ایجاد یک آرایه دو بعدی با استفاده از سازنده ()array را در نظر بگیرید:

$flowers = array(array("roses", 100 , 15), array("tulips", 60 , 25), array("orchids", 180 , 7));

آرایه $flowers شامل سه آرایه است. همانطور که به یاد دارید، برای دسترسی به عناصر یک آرایه یک بعدی، باید نام آرایه و کلید را مشخص کنید. همین امر برای آرایه های دو بعدی نیز صادق است، با یک استثنا: هر عنصر دارای دو کلید است: اولی برای انتخاب یک ردیف، دومی برای انتخاب یک ستون.

برای نمایش عناصر این آرایه می توانید به صورت دستی دسترسی به هر یک از آنها را بنویسید اما بهتر است از حلقه های تو در تو استفاده کنید:

دسترسی دستی به عناصر
"; echo $flowers." قیمت ".$flowers." مقدار ".$flowers."
"; echo $flowers." قیمت ".$flowers." مقدار ".$flowers."
"؛ پژواک"

استفاده از حلقه ها برای نمایش آیتم ها

"؛ پژواک"
    "؛ برای ($row = 0; $row< 3; $row++) { echo "
  1. شماره ردیف $row"؛ پژواک"
      "؛ برای ($col = 0؛ $col< 3; $col++) { echo "
    • ".$flowers[$row][$col]."
    • ";) اکو"
    "؛ پژواک"
  2. ";) اکو"
"; ?>

به جای اعداد ستون (شاخص هایی که به طور پیش فرض به آنها اختصاص داده شده است)، می توانید کلیدهای مورد نظر را به آنها بدهید. برای این منظور از آرایه های انجمنی استفاده می شود. آرایه زیر همان داده ها را ذخیره می کند، اما از کلیدهایی برای نامگذاری ستون های اطلاعات استفاده می کند:

$flowers = array(array("Name" => "رز"، "قیمت" => 100، "Quantity" => 15), array("Name" => "tulips", "Price" => 60، " Quantity" => 25,), array("Name" => "Orcides", "Price" => 180, "Quantity" => 7));

در مواردی که باید یکی از مقادیر را دریافت کنید، کلیدها راحتی بیشتری را برای کار با آرایه فراهم می‌کنند. داده های مورد نیاز را می توان به راحتی در صورت استفاده از سلول صحیح پیدا کرد نام های معنی دارردیف ها و ستون ها با این حال، با انجام این کار، ما توانایی پیمایش متوالی آرایه را با استفاده از حلقه for از دست می دهیم.

ما می توانیم از طریق آرایه های فرزند تنها حلقه for را تکرار کنیم. از آنجایی که آنها به نوبه خود تداعی هستند، برای تکرار بر روی عناصر خود، باید از حلقه foreach استفاده کنید یا به صورت دستی روی عناصر تکرار کنید:

"رز"، "قیمت" => 100، "تعداد" => 15)، آرایه("نام" => "لاله"، "قیمت" => 60، "تعداد" => 25،)، آرایه("نام" " => "ارکیده"، "قیمت" => 180، "تعداد" => 7)); پژواک"

دسترسی دستی به عناصر یک آرایه انجمنی

"؛ برای ($row = 0; $row< 3; $row++) { echo $flowers[$row]["Название"]." цена ".$flowers[$row]["Цена"] ." количество ".$flowers[$row]["Количество"]; echo "
";) اکو"

استفاده از حلقه foreach برای دسترسی به عناصر

"؛ پژواک"
    "؛ برای ($row = 0; $row< 3; $row++) { echo "
  1. شماره ردیف $row"؛ پژواک"
      "; foreach($flowers[$row] as $key => $value) (‎echo"
    • ".$value."
    • ";) اکو"
    "؛ پژواک"
  2. ";) اکو"
"; ?>

استفاده از سازنده ()array برای ایجاد یک آرایه دو بعدی ضروری نیست، همچنین می توانید از دستور کوتاه - براکت های مربع استفاده کنید:

$flowers = [ [ "Name" => "رز"، "قیمت" => 100، "Quantity" => 15 ], [ "Name" => "tulips", "Price" => 60، "Quantity" = > 25, ], [ "Name" => "orchids", "Price" => 180, "Quantity" => 7 ] ];

آرایه های سه بعدی

لازم نیست فقط به دو بعد محدود شوید: همانطور که عناصر یک آرایه می توانند حاوی آرایه باشند، آن آرایه ها نیز به نوبه خود می توانند حاوی آرایه های جدید باشند.

یک آرایه سه بعدی عرض، ارتفاع و عمق را مشخص می کند. اگر یک آرایه دو بعدی را به عنوان جدول نشان دهید، یک آرایه سه بعدی لایه هایی را به این جدول اضافه می کند. هر عنصر از چنین آرایه ای به یک لایه، ردیف و ستون اشاره دارد.

اگر آرایه خود را کمی با رنگ ها تغییر دهیم، می توانیم آن را به یک آرایه سه بعدی تبدیل کنیم. کد زیر این را نشان می دهد آرایه سه بعدی- آرایه ای حاوی آرایه ای از آرایه ها:

$flowers = [ [ ["رز"، 100، 15]، ["لاله‌ها"، 60، 25]، ["ارکیده‌ها"، 180، 7] ]، [["رز"، 100، 15]، ["لاله‌ها" "، 60، 25]، ["ارکیده"، 180، 7]، ]، [["رز"، 100، 15]، ["لاله‌ها"، 60، 25]، ["ارکیده"، 180، 7] ]؛

از آنجایی که این آرایه فقط شامل شاخص های عددی است، می توانیم از حلقه های تودرتو برای نمایش آن استفاده کنیم:

"؛ برای ($layer = 0; $layer< 3; $layer++) { echo "

  • شماره لایه $layer"; echo "
      "؛ برای ($row = 0; $row< 3; $row++) { echo "
    • شماره ردیف $row"؛ echo "
        "؛ برای ($col = 0؛ $col< 3; $col++) { echo "
      • ".$flowers[$layer][$row][$col]."
      • ";) اکو"
      "؛ پژواک"
    • ";) اکو"
    "؛ پژواک"
  • ";) اکو""; ?>