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

حذف خانه های آرایه در PHP
روش های مختلفی برای حذف یک یا چند عنصر آرایه در PHP وجود دارد که در ادامه به روش های مختلف انجام این کار می پردازیم.
حذف عنصر از آرایه در PHP
اگر میخواهید فقط یک خانه یا یک عنصر از آرایه را حذف کنید از ()unset یا ()array_splice میتوانید استفاده کنید.
اگر مقدار را میدانید و کلید حذف عنصر آرایه را نمیدانید؛ میتوانید ابتدا با کمک ()array_search کلید را پیدا کنید.
حذف با ()unset
- یک آرایه داریم با سه خانه:
۱ |
$array = [۰ => "a", ۱ => "b", ۲ => "c"]; |
- که با کمک تابع ()unset میایم و خانه ۱ آرایه را حذف میکنیم؛ که بدین صورت می نویسیم:
۱ |
unset($array[۱]); |
- که خروجی میشود:
۱ ۲ ۳ ۴ |
[ [۰] => a [۲] => c ] |
حذف با ()array_splice
اگر از ()array_splice استفاده کنید، کلید ها به صور خودکار دوباره ایندکس میشوند(reindexed)، اما کلیدهای وابسته تغییری نمیکنند. برخلاف ()array_values که همه کلیدها را به کلیدهای عددی تبدیل میکند.
- آرایه ای داریم به این شکل:
۱ |
$array = [۰ => "a", ۱ => "b", ۲ => "c"]; |
- که بدین گونه از ()array_splice استفاده میکنیم:
۱ |
array_splice($array, ۱, ۱); |
()array_splice به عنوان دومین پارامتر به offset نیاز دارد نه به Key.
- که خروجی آرایه در انتها میشود:
۱ ۲ ۳ ۴ |
[ [۰] => a [۱] => c ] |
حذف چند عنصر از آرایه در PHP
به جای فراخوانی چند بار ()unset یا ()array_splice برای حذف چند عنصر از آرایه میتوانید از توابع ()array_diff یا ()array_diff_key در صورتی که مقادیر یا کلیدهای آرایه را میدانید استفاده و اقدام به حذف چند عنصر کنید.
حدف با ()array_diff
اگر مقادیر عناصر آرایه ای را که میخواهید حذف کنید را میدانید، میتوانید از ()array_diff استفاده کنید که این تابع مانند ()unset کلیدهای آرایه را تغییر نمیدهد.
- آرایه ای داریم به این صورت:
۱ |
$array = [۰ => "a", ۱ => "b", ۲ => "c", ۳ => "c"]; |
- با کمک تابع ()array_diff دو خانه a و c را میخواهیم حذف کنیم:
۱ ۲ ۳ |
$array = array_diff($array, ["a", "c"]); // └────────┘ // Array values which you want to delete |
- که خروجی میشود:
۱ ۲ ۳ |
[ [۱] => b ] |
حذف با ()array_diff_key
اگر کلیدهای عنصری را که میخواهید حذف کنید میدانید؛ میتوانید از ()array_diff_key استفاده کنید.
- آرایه ای داریم به این صورت:
۱ |
$array = [۰ => "a", ۱ => "b", ۲ => "c"]; |
- با ()array_diff_key به این صورت استفاده میکنیم:
۱ ۲ ۳ |
$array = array_diff_key($array, [۰ => "xy", "۲" => "xy"]); // ↑ ↑ // Array keys which you want to delete |
- خروجی به صورت زیر می باشد:
۱ ۲ ۳ |
[ [۱] => b ] |
اگر میخواهید از ()unset یا ()array_splice برای حذف چندین عنصر با مقدار مشابه استفاده کنید، ابتدا باید با ()array_keys برای به دست آوردن همه کلیدهای یک مقدار را بدست آورده و سپس عناصر را حذف کنید.
این آموزش به پایان رسید، چنانچه مشکلی در رابطه با حذف عناصر یک ارایه در PHP داشتید، در بخش پرسش و پاسخ سایت مطرح کنید.
موفق باشید.
ارسال نظر
شما باید وارد شوید یا عضو شوید تا بتوانید نظر ارسال کنید