array_merge، array_slice و array_splice - آزمون آنلاین php
قراره به صورت مرحله به مرحله با هم مباحث مربوط به توابع مهم PHP، یعنی array_merge، array_slice و array_splice رو بررسی کنیم و در نهایت، شما می تونید با شرکت در یک آزمون، مهارت خودتون رو محک بزنید و ببینید چقدر در این زمینه پیشرفت کردید.

ترکیب و برش آرایه ها در PHP
تا حالا شده بخوای چند تا آرایه رو با هم ترکیب کنی یا بخشی از یه آرایه بزرگ رو جدا کنی؟ یا حتی بخوای یه تیکه از آرایه رو ببری و یه چیز دیگه به جاش بذاری؟
خب، برای این کارها PHP یه سری ابزار خفن در اختیارت می ذاره که زندگی برنامه نویسی ات رو راحت تر می کنه. امروز می خوام درباره سه تا از این ابزارهای جادویی باهات صحبت کنم: array_merge، array_slice و array_splice.
شاید بپرسی اینا چه فرقی با هم دارن؟ بیا بهت بگم. یکی کارش ترکیب کردن آرایه هاست، یکی دیگه برش زدن و اون آخری هم که دیگه تهشه و همزمان می تونه برش بزنه و یه چیز جدید جایگزین کنه. به نظرم خیلی باحال میاد، نه؟
array_merge: ترکیب کردن آرایه ها
وقتی می خوای دو یا چند آرایه رو با هم یکی کنی، array_merge بهترین انتخابه. فرض کن دو تا سبد میوه داری و می خوای همه شون رو بریزی توی یه سبد بزرگ تر. array_merge دقیقاً همین کار رو می کنه.
فقط حواست باشه که اگه کلیدهای عددی تکراری داشته باشی، آرایه دوم جایگزین آرایه اول می شه. اما اگه کلیدها متنی باشن و تکراری، مقدار آرایه دوم، مقدار آرایه اول رو بازنویسی می کنه. ببین، برای اینکه بهتر متوجه بشی، بیا یه مثال بزنم:
$fruits1 = ['apple', 'orange'];
$fruits2 = ['banana', 'grape'];
$mergedFruits = array_merge($fruits1, $fruits2);
print_r($mergedFruits);
// خروجی: Array ( [0] => apple [1] => orange [2] => banana [3] => grape )
حالا فرض کن کلیدهای متنی داریم:
$user1 = ['name' => 'Ali', 'age' => 30];
$user2 = ['city' => 'Tehran', 'age' => 40];
$mergedUser = array_merge($user1, $user2);
print_r($mergedUser);
// خروجی: Array ( [name] => Ali [age] => 40 [city] => Tehran )
می بینی؟ مقدار 'age' از آرایه دوم جایگزین مقدار آرایه اول شد.
array_slice: برش زدن آرایه ها
حالا نوبت به array_slice می رسه. این تابع مثل یه چاقوی تیز عمل می کنه و بهت اجازه می ده بخشی از یه آرایه رو جدا کنی. مثل اینکه از یه کیک بزرگ، یه تیکه کوچیک می بری.
این تابع سه تا ورودی اصلی می گیره: آرایه، نقطه شروع برش و طول برش. یه نکته باحال دیگه اینکه می تونی بهش بگی کلیدها رو حفظ کنه یا نه. اینجوری خیلی کار راه میندازه.
مثال ها:
- جدا کردن ۳ عنصر از آرایه از موقعیت شماره ۲:
$numbers = [10, 20, 30, 40, 50, 60, 70];
$slice = array_slice($numbers, 2, 3);
print_r($slice);
// خروجی: Array ( [0] => 30 [1] => 40 [2] => 50 )
- جدا کردن ۲ عنصر از انتهای آرایه:
$sliceEnd = array_slice($numbers, -2);
print_r($sliceEnd);
// خروجی: Array ( [0] => 60 [1] => 70 )
array_splice: برش و جایگزینی همزمان
اگه array_slice یه چاقوی معمولی بود، array_splice یه چاقوی چندکاره سوییسیه! این تابع بهت این امکان رو می ده که نه تنها یه بخشی از آرایه رو ببری، بلکه به جاش یه یا چند عنصر جدید هم اضافه کنی.
این کار همزمان انجام می شه و نیازی نیست چند تا تابع رو پشت سر هم بنویسی. خیلی کار رو تمیز و مرتب می کنه. بیا ببینیم چطوری کار می کنه.
$colors = ['red', 'green', 'blue', 'yellow', 'purple'];
// حذف ۲ عنصر از موقعیت ۱ و جایگزینی با 'orange' و 'white'
array_splice($colors, 1, 2, ['orange', 'white']);
print_r($colors);
// خروجی: Array ( [0] => red [1] => orange [2] => white [3] => yellow [4] => purple )
یه کاربرد دیگه اینه که فقط حذف کنی:
$fruits = ['apple', 'banana', 'cherry', 'date'];
array_splice($fruits, 2, 1); // حذف یک عنصر از موقعیت ۲
print_r($fruits);
// خروجی: Array ( [0] => apple [1] => banana [2] => date )
همونطور که دیدی، این سه تا تابع در عین شباهت، تفاوت های اساسی دارن و هر کدوم برای یه کار خاصی طراحی شدن. برای اینکه مهارتت رو در استفاده از این توابع بسنجی، می تونی در آزمون مربوطه شرکت کنی.
این آزمون بهت کمک می کنه بفهمی چقدر مفاهیم رو درست یاد گرفتی و کجاها نیاز به تمرین بیشتر داری. با پاسخ دادن به سوالات این آزمون، متوجه می شی که چقدر در ترکیب، برش و دستکاری آرایه ها در PHP مهارت داری.
نتیجه آزمون بهت نشون می ده که آیا آماده ای برای پروژه های بزرگ تر دست به کار بشی یا نه.
در آخر، برای اینکه تفاوت این سه تابع رو بهتر درک کنی، یه جدول مقایسه برات آماده کردم:
| تابع | عملیات اصلی | توضیحات | آیا آرایه اصلی تغییر می کند؟ |
|---|---|---|---|
array_merge |
ترکیب آرایه ها | چند آرایه را با هم ترکیب می کند. | خیر، یک آرایه جدید برمی گرداند. |
array_slice |
برش آرایه | بخشی از آرایه را جدا می کند. | خیر، یک آرایه جدید برمی گرداند. |
array_splice |
برش و جایگزینی | بخشی از آرایه را حذف و جایگزین می کند. | بله، آرایه اصلی را تغییر می دهد. |