توضیحی درباره تابع array_splice

پرسیده شده
فعالیت 1390 روز پیش
دیده شده 965 بار
3

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

<?php 
  
// PHP program to illustrate the use  
// of array_splice() function 
  
$array1 = array("10"=>"raghav", "20"=>"ram",  
    "30"=>"laxman","40"=>"aakash","50"=>"ravi"); 
  
$array2 = array("60"=>"ankita","70"=>"antara"); 
  
echo "The returned array: \n"; 
print_r(array_splice($array1, 1, 4, $array2)); 
  
echo "\nThe original array is modified to: \n"; 
print_r($array1); 
  
?> 

خروجی این مثال میشه:

The returned array: 
Array
(
    [0] => ram
    [1] => laxman
    [2] => aakash
    [3] => ravi
)

The original array is modified to: 
Array
(
    [0] => raghav
    [1] => ankita
    [2] => antara
)

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

 

امیدوارم براتون مفید بوده باشه

فایل پیوست

3
حذف شده

فکر میکنم استاد در توضیح تابع array_splice یه اشتباه کوچیکی داشتن.

تابع زیر

array_splice($a,1,2,$b)

در واقع به این معناست که از اندیس 1 ام آرایه a به اندازه 2 تا عضو رو پاک کن و بجاش آرایه b رو قرار بده و در ادامه بقیه اعضای a رو چاپ کن. از خروجی مثالی که خود استاد زدن هم میشه این رو فهمید.

اگر توجه کنید اندیس های خروجی در اون مثال عبارت بودن از: a,0,1,2,d. این یعنی از اندیس شماره 1 آرایه a به تعداد 2 عضو پاک شده (یعنی اندیس های b و c) و بجای اونها اعضای آرایه b قرار گرفته (3 عضو) و در ادامه بقیه اعضای a در خروجی قرار گرفتن (اندیس d).

استاد در توضیحاتشون گفتن که blue ای که در انتهای خروجی چاپ شده عضو حذف شده هست و yellow ای که در انتهای خروجی آمده هم عضو حذف شده از آرایه اول هست. که این موارد بنظر درست نیست.

ممنون

فایل پیوست

فــــــــــــــــــــرزان

توسط

فــــــــــــــــــــرزان

30 اردیبهشت 99

1
حذف شده

بله دقیقا درست میفرمایین.
در مثالی که توی ویدیو زده شد استاد گفتند که اعضای حذف شده در انتهای آرایه میان. در حالی که در اینصورت باید دو تا blue میداشتیم (اولش فکر کردم که شاید اعضای تکراری رو نشون نمیده. بعدش دیدم که اول آرایه دوتا red داریم و فهمیدم که حدسم درست نیست)
توضیحاتتون بسیار عالی بود. فقط بنظرم بهتره این قسمت یه کم کاملتر بشه:
...در واقع به این معناست که از اندیس ۱ ام آرایه a (با احتساب خودش) به اندازه ۲ تا عضو رو پاک کن و بجاش...

سپاس از شما

فایل پیوست

امیرحسین شکری

توسط

امیرحسین شکری

19 تیر 99