PHPのarray_filter()関数とは?使い方とサンプルコードを徹底解説
PHPのarray_filter()関数は、ユーザーが定義したコールバック関数を使って配列の要素を絞り込む(フィルタリングする)ための関数です。コールバック関数がtrueを返した要素だけが残り、フィルタリング済みの新しい配列として返されます。
基本構文
array_filter(arr, callback, flag)
パラメータ
arr ー フィルタリングの対象となる配列を指定します。
callback ー 各要素の判定に使用するコールバック関数を指定します。この関数が
trueを返す要素のみが結果の配列に残ります。flag ー コールバック関数に渡す引数の種類を指定するオプションです。以下の定数が利用できます。
ARRAY_FILTER_USE_KEY ー 値ではなく、キーのみをコールバック関数に渡します。
ARRAY_FILTER_USE_BOTH ー 値とキーの両方をコールバック関数に渡します。
戻り値
array_filter()関数は、コールバック関数による判定を通過した要素のみを含む、フィルタリング済みの配列を返します。なお、元の配列のキーは保持される点に注意してください。そのため、結果の配列ではインデックスが連続しない場合があります。
使用例
次の例では、偶数だけを抽出するコールバック関数「check」を定義し、配列から偶数の要素を取り出しています。
<?php
function check($arr) {
return(!($arr & 1));
}
$arr1 = array(3, 6, 9, 15, 20, 30, 45, 48, 59, 66);
print_r(array_filter($arr1, "check"));
?>実行結果
Array ( [1] => 6 [4] => 20 [5] => 30 [7] => 48 [9] => 66 )
ポイントまとめ
コールバック関数が
trueを返した要素のみが残ります。元の配列のキーは維持されるため、必要に応じて
array_values()でインデックスを振り直すと便利です。callbackに
nullを指定すると、falseと評価される要素(0、空文字列、nullなど)をすべて除去できます。
-
PHPのmax()関数とは?配列・複数の値から最大値を取得する方法を解説
max()関数の定義と用途PHPのmax()関数は、配列の中から最も大きい要素、または2つ以上のカンマ区切りの引数の中から最大の値を返す組み込み関数です。数値だけでなく文字列の比較にも対応しており、さまざまな場面で活用できます。構文配列を引数として渡す場合:max ( array $values ) : mixedまたは複数の値を直接渡す場合:max ( mixed $value1 [, mixed $... ] ) : mixedパラメータNo.パラメータと説明1values引数が1つだけ指定された場合は、同じ型または異なる型の値を含む配列を渡す必要があります。2value1, value2
-
PHPのlog10()関数とは?常用対数の計算方法と具体例をわかりやすく解説
定義と使用方法log10() 関数は、数値の常用対数(底が10の対数)を計算するための関数です。常用対数は「10を底とする対数」とも呼ばれ、log10x を求める際に使用されます。自然対数との間には、次のような関係式が成り立ちます。log10x = logex / loge10この式に基づけば、たとえば次のように計算できます。log10100 = loge100 / loge10 = 2PHPでは、この常用対数の計算を log10() 関数が担っています。構文log10 ( float $arg ) : floatパラメータ番号パラメータと説明1arg常用対数(底10の対数)を計算したい数値を