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);