حذف یک عنصر از آرایه در PHP
![](https://media.hapigan.com/avatars/3080afdd90724629854cefe03bef62ef.webp)
حذف یک عنصر از آرایه در PHP میتواند با استفاده از چندین روش ساده انجام شود.
استفاده از تابع unset
یکی از روشهای اصلی و پرکاربرد برای حذف یک عنصر مشخص از آرایه، استفاده از تابع unset()
است. اگر هدف شما تنها حذف یک عنصر خاص باشد، unset()
گزینه مناسبی است. این تابع بر اساس کلید عنصر به حذف آن میپردازد و بنابراین میتوانید به راحتی عنصری که نیاز ندارید را حذف کنید. با این حال، توجه داشته باشید که استفاده از unset()
هیچ تغییری در کلیدهای آرایه ایجاد نمیکند و ممکن است منجر به باقی ماندن برخی کلیدهای غیرمرتب شود.
برای تغییر کلیدها به ترتیب عددی، میتوانید از تابع array_values()
پس از unset()
استفاده کنید که تمام کلیدها را مجدداً به صورت عددی مرتب میکند. به عنوان مثال:
$array = [0 => "a", 1 => "b", 2 => "c"];
unset($array[1]);
// نتیجه: [0] => "a", [2] => "c"
$array = array_values($array);
// نتیجه مجدد: [0] => "a", [1] => "c"
استفاده از تابع array_splice
روش دیگر، استفاده از تابع array_splice()
است که همچنین میتواند به شما کمک کند تا عنصر را حذف کرده و کلیدها را مجدداً مرتب کنید. با این حال، باید توجه داشته باشید که array_splice()
به جای کلید، به اندیس عنصر نیاز دارد.
برای فقط حذف آیتم به روش زیر عمل کنید:
<?php
$fruits = [
"سیب",
"موز",
"گیلاس",
"پرتقال",
"انگور"
];
// حذف سه عنصر از موقعیت 2
array_splice($fruits, 2, 3);
// نمایش آرایه تغییر یافته
print_r($fruits);
// خروجی
Array
(
[0] => سیب
[1] => موز
)
?>
برای حذف آیتم ها و جایگزینی به روش زیر عمل کنید:
<?php
// آرایه اولیه
$fruits = [
"سیب",
"موز",
"گیلاس",
"پرتقال",
"انگور"
];
// حذف دو عنصر از آرایه از موقعیت 1 و جایگزینی آنها با مقادیر جدید
array_splice($fruits, 1, 2, ["هلو", "آناناس"]);
// نمایش آرایه تغییر یافته
print_r($fruits);
// خروجی
Array
(
[0] => سیب
[1] => هلو
[2] => آناناس
[3] => پرتقال
[4] => انگور
)
?>
حذف چند عنصر با تابع array_diff و array_diff_key
برای حذف چندین عنصر به طور همزمان، میتوانید از توابع array_diff()
یا array_diff_key()
استفاده کنید. اگر شما مقادیر عناصر را میشناسید، array_diff()
میتواند مفید باشد. به عنوان مثال:
$array = [0 => "a", 1 => "b", 2 => "c", 3 => "c"];
$array = array_diff($array, ["a", "c"]);
// نتیجه: [1] => "b"
اگر شناسههای کلیدها را می دانید، می توانید از تابع array_diff_key()
استفاده کنید که کلیدها را بدون تغییر نگه میدارد.
حذف بر اساس مقدار با تابع array_filter
همچنین اگر بخواهید تمام عناصر با یک مقدار خاص را حذف کنید، میتوانید از array_filter()
استفاده کنید:
$array = [0 => "a", 1 => "b", 2 => "c"];
$array = array_filter($array, static function ($element) {
return $element !== "b"; // حذف مقدار "b"
});
// نتیجه: [0] => "a", [2] => "c"