فیلترکردن آرایه (array_filter)
«فیلترکردن آرایه (Array Filter)» یعنی انتخاب فقطِ آیتم های موردنظر. تابع array_filter() با «تابعِ بازگشتی (Callback)» کار می کند. هر مقدار به کال بک می رود. اگر «درست (true)» برگشت، آن مقدار نگه داشته می شود. کلیدها حفظ می شوند.
تعریف ساده و رفتار تابع
array_filter(array, callback, flag) مقدارهای آرایه را با کال بک می سنجد. اگر کال بک درست برگرداند، آن مقدار در خروجی می ماند. کلیدها تغییر نمی کنند.
پارامترها
- array: آرایه ورودی برای فیلتر.
- callback: تابع آزمایش هر مقدار یا کلید.
- flag: شیوه ارسال به کال بک:
ARRAY_FILTER_USE_KEYفقط کلید؛ARRAY_FILTER_USE_BOTHهر دو.
مثال پایه: نگه داشتن اعداد فرد
در این مثال، فقط عددهای فرد نگه داشته می شوند. آزمون با عملگر بیتی انجام می شود.
<?php
function test_odd($var) {
return ($var & 1);
}
$a1 = array(1, 3, 2, 3, 4);
print_r(array_filter($a1, "test_odd"));
?>
گام های عملی سریع
- آرایه ورودی را آماده کن. نمونه داده بگذار.
- کال بک را بنویس. درست یا نادرست برگردان.
array_filter()را صدا بزن. خروجی را بررسی کن.- نیاز به کلید داری؟ از
flagمناسب استفاده کن.
نکات، پرچم ها و سازگاری
- کلیدها در خروجی حفظ می شوند.
- flag از PHP 5.6 اضافه شده است.
- نکته: اگر کال بک ندهی،
falseهای «ساده» حذف می شوند. - برای «نگاشت مقادیر»، صفحه array_map را ببین.
- برای «کاهش به یک مقدار»، صفحه array_reduce را بررسی کن.
جمع بندی سریع
- هر مقدار با کال بک سنجیده می شود.
- درست برگردد، آن مقدار می ماند.
- کلیدها دست نخورده می مانند.
- پرچم ها نوع آرگومان را تعیین می کنند.