配列のフィルター:array_filter
//無名関数で直にフィルターをかける
// 連想配列を定義
$prices = [
    'priceA' => 100,
    'priceB' => 200,
    'priceC' => 300,
    'priceD' => 400,
    'priceE' => 500,
];
//300円以上の値を取得する
$result = array_filter($prices, function($price) {
    return $price >= 300;
});

//多次元連想配列のフィルター
//フィルターにかける関数
  function extractWoman($element) {
    return $element['sex'] == 'woman';
  }
//フィルターしたい連想配列
$array = [
  [
    'name' => 'Keita',
    'sex' => 'man',
    'birth_month' => 11,
  ],
  [
    'name' => 'Miho',
    'sex' => 'woman',
    'birth_month' => 13,
  ],
  [
    'name' => 'Yuri',
    'sex' => 'woman',
    'birth_month' => 11,
  ],
];
//フィルターを実行!
$result = array_filter($array, "extractWoman");

関数型プログラミング:useを使う

参考リンク:Functional-Programming

参考リンク:関数型プログラミングを噛み砕く

  
    function criteria_greater_than($min)
    {
        return function($item) use ($min) {
            return $item > $min;
        };
    }

    $input = array(1, 2, 3, 4, 5, 6);

    // array_filter を使い、入力値とフィルター関数を指定する
    $output = array_filter($input, criteria_greater_than(3));

    print_r($output); // items > 3

  
  
array_filter():渡された整数が奇数かどうか
// 渡された整数が奇数かどうか
function odd($var){ return $var & 1; }
// 渡された整数が偶数かどうかを返します
function even($var){ return !($var & 1); }
$array1 = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
$array2 = [6, 7, 8, 9, 10, 11, 12];
print_r(array_filter($array1, "odd"));
print_r(array_filter($array2, "even"));