فیلتر کردن (Filter) (گزینش) مقادیر یک آرایه (Array) بر اساس یک تابع دلخواه، با تابع array_filter ، در PHP
با استفاده از تابع array_filter در PHP ، می توانیم مقادیر یک آرایه (Array) را فیلتر (Filter) (گزینش) کنیم. این فیلتر کردن (Filter) (گزینش)، بر اساس یک تابع دلخواه خواهد بود. یعنی ما یک تابع دلخواه تعریف می کنیم که یک مقدار را در ورودی خود دریافت می کند و بر اساس یک سری عملیات ها و شرط ها که در آن تابع می نویسیم، به ما اطلاع می دهد که آیا مقدار مورد نظر نگه داشته شود یا خیر. به این صورت که اگر آن تابع، مقدار true را برگرداند، یعنی باید آن مقدار نگه داشته شود، در غیر این صورت، یعنی آن مقدار نگه داشته نمی شود (فیلتر آن را حذف می کند).
بنابراین ابتدا تابع دلخواهمان را تعریف می کنیم و سپس تابع را در ورودی تابع array_filter ذکر می کنیم تا تابع array_filter ، تک تک مقادیر را از آرایه (Array) خوانده و به آن تابع دلخواه بدهد و بر اساس آن تابع دلخواه، متوجه شود که کدام مقادیر از فیلتر (Filter) رد می شوند و کدام مقادیر توسط فیلتر (Filter) حذف خواهند شد. تابع array_filter ، مقادیری که بدون حذف، از فیلتر (Filter) رد شوند را به صورت یک آرایه (Array) به ما بر می گرداند (آرایه ای حاصل از حذف برخی عنصرهای آرایه اولیه).
به مثال زیر توجه کنید :
تابع array برای ساخت یک آرایه (Array) به کار می رود ( کلید شماره 381 ).
تابع print_r برای نمایش عناصر آرایه (Array) در خروجی به کار می رود و زوج تگ pre را نیز قبل و بعد از تابع print_r قرار داده ایم تا نمایش عناصر آرایه (Array) در خروجی، به شکل قابل درک و مناسب تری باشد.
تابع دلخواه برای فیلتر (Filter) کردن عناصر آرایه (Array) را با نام test_number و با کدهای زیر تعریف کرده ایم (اگر ورودی تابع، عددی بزرگتر از 5 باشد، تابع مقدار true را برمی گرداند و در غیر این صورت، مقدار false برگردانده می شود) :
نتیجه :
دقت کنید که آرایه ای (Array) که حاصل شده است، دقیقا از حذف برخی عناصر آرایه (Array) اولیه ساخته شده و بنابراین کلیدهای (key) مربوط به آنها را دقیقا مطابق آنچه بوده، نگه داشته است (مقدار کلیدها از 0 شروع نمی شود).