[PHP] 配列から条件に合う要素だけを抽出する

作成日: 2026年08月01日

PHP の array_filter 関数を使用すると、配列からコールバック関数の条件に一致する要素だけを抽出することができます。

<?php

$numbers = [1, 2, 3, 4, 5, 6];

// 偶数の要素だけを抽出する
$even_numbers = array_filter($numbers, function ($value) {
    return $value % 2 === 0;
});

var_dump($even_numbers);

実行結果は下記のとおりです。

array(3) {
  [1]=>
  int(2)
  [3]=>
  int(4)
  [5]=>
  int(6)
}

キー(インデックス)を 0 から振り直す

array_filter 関数は元の配列のキーをそのまま維持します。キーを 0 からの連番にリセットしたい場合は、array_values 関数と組み合わせます。

<?php

$numbers = [1, 2, 3, 4, 5, 6];

$even_numbers = array_filter($numbers, function ($value) {
    return $value % 2 === 0;
});

// キーを 0 からの連番に振り直す
$reindexed = array_values($even_numbers);

var_dump($reindexed);

実行結果は下記のとおりです。

array(3) {
  [0]=>
  int(2)
  [1]=>
  int(4)
  [2]=>
  int(6)
}
PHP