トップページ
Laravel学習サイトLaravelやるばい

目次

PHPのarray_filterが何かと簡単なサンプルコードで解説

みなさんこんにちは、あべ いさぢです。

PHPのarray_filterが何かと簡単なサンプルコードで解説します。


array_filterとは

対象の配列や連想配列に対して条件に合う要素だけを残す関数です。

基本形は下記になります。

array_filter(array $array, callable $callback): array

サンプルコードで考えた方が分かりやすいのでそうします。


サンプルコード

下記のコードで考えます。

$data = [10, 20, 30, 40];

$result = array_filter($data, function($value) {
    return $value >= 30;
});

print_r($result);

配列の要素を絞り込み条件は「$value >=30;」です。

結果は下記になります。

Array
(
    [2] => 30
    [3] => 40
)

下記のコードの様に空の値を除くこともできます。

$data = ['apple', '', null, 'banana'];

$result = array_filter($data);

print_r($result);

結果は下記になります。

Array
(
    [0] => apple
    [3] => banana
)

連想配列のkeyに対して絞り込みをすることもできます。

$data = [
    'a' => 10,
    'b' => 20,
    'c' => 30
];

$result = array_filter($data, function($value, $key) {
    return $key !== 'b';
}, ARRAY_FILTER_USE_BOTH);

print_r($result);

,ARRAY_FILTER_USE_BOTH」の記述をすることでarray_filterの絞り込みの関数の第二引数にkeyも使うことが可能になります。

結果は下記です。

Array
(
    [a] => 10
    [c] => 30
)
戻る