آموزش تابع Array_filter در php ، در این پست از تجاری اپ آموزش کار با تابع array filter در php را به شما آموزش خواهیم داد.این تابع مقادیر یک آرایه را با استفاده از یک تابع فراخوانی(callback) فیلتر می کند. همچنین این تابع ، هر مقدار که در آرایه ورودی قرار می گیرد را به تابع فراخوانی(callback) پاس می دهد. اگر تابع فراخوانی مقدار true را بازگرداند ، مقدار فعلی از آرایه به آرایه نتیجه (result array) بازگردانده می شود. همچنین کلیدهای آرایه حفظ می شوند.
همچنین بخوانید: آموزش تابع array_chunk در php با مثال
مروری اجمالی برآموزش کار با تابع array filter در php :
این تابع مقادیر آرایه را با استفاده از تابع فراخوانی فیلتر می کند.همچنین این تابع هر مقدار از یک آرایه ورودی را به تابع فراخوانی می فرستد. اگر تابع فراخوانی مقدار true را برگرداند ، مقدار فعلی از آرایه به آرایه نتیجه (result array) برگردانده می شود. همچنین کلیدهای آرایه حفظ می شوند.
مثال زیر را مشاهده کنید:
<?php
function even($value)
{
return $value % 2 == 0;
}
$arr = [1, 2, 3, 4, 5];
print_r(array_filter($arr,"even"));
در کد بالا ، ما زوج بودن عناصر آرایه رو بررسی می کنیم ، سپس هر عنصری از آرایه که فرد باشد فیلتر می شوند و از آرایه خارج می شوند و تنها عناصری که زوج می باشند در آرایه باقی می مانند.
خروجی را در زیر مشاهده ی کنید:
Array
(
[1] => 2
[3] => 4
)
ما همچنین می توانیم تابع array_filter() را مانند زیر بنویسیم:
<?php
$arr = [1, 2, 3, 4, 5];
$output = array_filter($arr, function($value) {
return $value % 2 == 0;
});
print_r($output);
خروجی همانند بالا خواهد بود ما فقط یک تابع بی نام نوشتیم.
در php 5.6 پارامتر سومی به نام flag به تابع array_filter() اضافه شد ، که ما می توانیم آن را با ARRAY_FILTER_USE_KEY ست کنیم تا به جای اینکه فیلتر براساس مقدار انجام شود بر اساس کلید (key) انجام شود.
مثال زیر راببنید:
<?php
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4];
$outputA = array_filter($arr, function($k) {
return $k == 'b';
}, ARRAY_FILTER_USE_KEY);
print_r($outputA);
خروجی را در زیر مشاهده ی کنید:
Array
(
[b] => 2
)
ما همچنین می توانیم ARRAY_FILTER_USE_BOTH را برای فیلتر کردن بر اساس کلید یا مقدار تنظیم کنیم.
مثال زیر را ببینید:
<?php
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4];
$outputB = array_filter($arr, function($v, $k) {
return $k == 'b' || $v == 4;
}, ARRAY_FILTER_USE_BOTH);
print_r($outputB);
خروجی را در زیر مشاهده ی کنید:
Array
(
[b] => 2
[d] => 4
)
ما می توانیم به کلید فعلی آرایه با استفاده از فرستادن یک ارجاع به آرایه به تابع فراخوانی و صدا زدن متد key() و next() در تابع فراخوانی دسترسی پیدا کنیم.
مثال زیر را ببینید:
<?php
// app.php
$data = array('first' => 1, 'second' => 2, 'third' => 3);
$data = array_filter($data, function ($item) use (&$data) {
echo "Filtering key ", key($data)."\n";
next($data);
});
خروجی را در زیر مشاهده ی کنید:
Filtering key first
Filtering key second
Filtering key third
همچنین بخوانید: آموزش نحوه تبدیل آرایه به json در php همراه با مثال
امیدوارم این آموزش برای شما مفید بوده باشد.