آموزش کار با تابع array_chunk در php با مثال ، ما برای این مثال از نسخه PHP 7.3.2 استفاده می کنیم.تابع array chunk آرایه را به آرایه های کوچکتر تقسیم می کند.این تابع یک آرایه عددی چند بعدی را برمی گرداند که ایندکس های این آرایه از صفر شروع می شود.هر بعد این آرایه شامل تعداد عناصری به اندازه پارامتر size می باشد ، البته آخرین بخش آرایه ممکن است شامل تعداد عناصر کمتر از پارامتر size باشد.
سینتکس تابع array_chunk را در پایین مشاهده می کنید:
array_chunk(array,size,preserve_key);
آرگومان array ضروری می باشد ، زیرا آرایه ای است که به منظور انجام عملیات بر روی آن به تابع ارسال می شود.
آرگومان size نیز ضروری می باشد ، این آرگومان یک عدد صحیح است که اندازه تکه (chunk) را مشخص می کند.
آرگومان preserve_keys اختیاری می باشد.این آرگومان می تواند مقدار True یا False باشد ، که بصورت پیش فرض False می باشد.
اگر آرگومان preserve_keys بر روی مقدار True ست شود به این معناست که کلیدهای آرگومان ها حفظ می شود اما اگر بر روی False ست شود آرایه های تکه تکه شده یا آرایه های موجود در هر بعد به صورت عددی مجددا از صفر اندیس گذاری می شود.
مثال زیر را مشاهده نمایید:
<?php
$colors = ['Red', 'Blue', 'Green', 'yellow', 'pink'];
$colors_chunk = array_chunk($colors, 2);
print_r($colors_chunk);
خروجی کدهای بالا را در پایین مشاهد می کنید:
همچنین بخوانید: آموزش تابع array_pop() در php به همراه مثال
همانطور که در تصویر بالا مشاهده می کنید خروجی یک آرایه چندی بعدی است و هر تکه شامل دو عنصر می باشد البته به جز آخرین تکه آرایه ، که یک عنصر دارد.
ما می توانیم به این عناصر با استفاده از روش زیر دسترسی پیدا کنیم:
<?php
$colors = ['Red', 'Blue', 'Green', 'yellow', 'pink'];
$colors_chunk = array_chunk($colors, 2);
echo $colors_chunk[0][0] ."\n";
echo $colors_chunk[0][1] ."\n";
echo $colors_chunk[1][0] ."\n";
echo $colors_chunk[1][1] ."\n";
echo $colors_chunk[2][0] ."\n";
خروجی کدهای بالا را در پایین مشاهد می کنید:
در ادامه یک مثال را مشاهده می کنید که مقدار آرگومان preserve_keys را بر روی True تنظیم کرده ایم (کلیدهای آرگومان ها حفظ می شود).
<?php
$data = ['Iran' => 'Tehran', 'Japan' => 'Tokyo', 'Spain' => 'Madrid'];
$data_chunk = array_chunk($data, 2, true);
print_r($data_chunk);
خروجی کدهای بالا را در پایین مشاهد می کنید:
همانطور که در تصویر بالا مشاهده می کنید ، کلید ارگومان سوم حفظ شده است و ایندکس عناصر هر تکه (chunk) همانند ایندکس عناصر در آرایه اصلی می باشد.
ما می توانیم با استفاده از کد زیر به پایتخت هر کشور دسترسی داشته باشیم:
<?php
$data = ['Iran' => 'Tehran', 'Japan' => 'Tokyo', 'Spain' => 'Madrid'];
$data_chunk = array_chunk($data, 2, true);
echo $data_chunk[0]["Iran"] ."\n";
echo $data_chunk[0]["Japan"] ."\n";
echo $data_chunk[1]["Spain"] ."\n";
خروجی کدهای بالا را در پایین مشاهد می کنید: