PHP入門 配列関数 配列の内容を特定の条件で絞り込む(array_filter関数)

array_filter関数を利用することで、配列の内容をコールバック関数で判定し、その中でtrueと判定された要素だけを取得できます。

構文:array_filter関数

array_filter(array $array[, >callable $callback [,int $mode]]):array
$array元の配列
$callback要素のtrue/falseを判定する処理
$mode動作オプション

コールバック関数(引数$callback)の条件は、以下の通りです。

  • 引数として個々の要素を受け取り($v)
  • 結果に要素を残すならばtrue、除去するならばfalseを返す

ただし、引数$modeの値によって、コールバック関数が受け取るべき引数は変化します。

値の渡し方

設定値概要
ARRAY_FILTER_USE_KEYキーを引数として渡す(値は渡さない)
ARRAY_FILTER_USE_BOTH値/キーの双方を渡す
<?php
$data = ['フレンチレストラン','和食','アイスクリーム屋','とんかつ洋食亭'];
$result = array_filter($data, function($v){
  return mb_strlen($v) < 8;
});
print_r($result);
実行結果
実行結果