функция фильтра массива из php:
array_filter ( $array, $callback_function, $flag )
$ array - это входной массив
$ callback_function - Используемая функция обратного вызова. function Если функция обратного вызова возвращает true , текущее значение из массива возвращается в массив результатов.
$ flag - это необязательный параметр , он определяет, какие аргументы отправляются в функцию обратного вызова. Если этот параметр пуст, то функция обратного вызова будет принимать значения массива в качестве аргумента. Если вы хотите отправить ключ массива в качестве аргумента, используйте $ flag как ARRAY_FILTER_USE_KEY . Если вы хотите отправить ключи и значения, вы должны использовать $ flag как ARRAY_FILTER_USE_BOTH .
Например: рассмотрим простой массив
$array = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
Если вы хотите фильтровать массив на основе ключа массива , нам нужно использовать ARRAY_FILTER_USE_KEY в качестве третьего параметра функции массива array_filter.
$get_key_res = array_filter($array,"get_key",ARRAY_FILTER_USE_KEY );
Если вы хотите фильтровать массив на основе ключа массива и значения массива , нам нужно использовать ARRAY_FILTER_USE_BOTH в качестве третьего параметра функции массива array_filter.
$get_both = array_filter($array,"get_both",ARRAY_FILTER_USE_BOTH );
Пример функции обратного вызова:
function get_key($key)
{
if($key == 'a')
{
return true;
} else {
return false;
}
}
function get_both($val,$key)
{
if($key == 'a' && $val == 1)
{
return true;
} else {
return false;
}
}
Будет выводить
Output of $get_key is :Array ( [a] => 1 )
Output of $get_both is :Array ( [a] => 1 )
$b = ['foo' => $a['foo'], 'bar' => $a['bar']]
это приведет к тому,$b['bar']
чтоnull
.