icon
icon

PHPでarray_filterを使ってフィルタリングする方法を現役エンジニアが解説【初心者向け】

初心者向けにPHPでarray_filterを使ってフィルタリングする方法について現役エンジニアが解説しています。array_fileter関数とは、配列の要素を特定の条件で絞り込むための関数です。コールバック関数を指定することが出来ます。配列から特定の要素を除外して取得してみましょう。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

今回は、PHPでarray_filterを使ってフィルタリングする方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

 

PHPについてそもそもよく分からないという方は、PHPとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、PHP/Laravel講座の内容をもとに紹介しています。

 

田島悠介

今回は、PHPに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

PHPでarray_filterを使ってフィルタリングする方法について詳しく説明していくね!

大石ゆかり

お願いします!

 
この記事では、PHPでarray_filterを使ってフィルタリングする方法について解説します。
 

array_filterとは

フィルタリングとは、あるリストに対して特定の条件の結果に一致するもののみを取得する手法のことです。

PHPにも配列要素を特定の条件で絞り込むための関数として、array_filter関数が存在します。
 

array_filterを使ってフィルタリングする方法

array_filter関数は、以下の形式で使うことができます。

arrat_filter(配列, コールバック関数 [, フラグ]);

第1引数がフィルタリングしたい配列、第2引数がコールバック関数でどのようにフィルタリングするのかを指定した関数の関数名が入ります。

第3引数はコールバック関数にどのような値を渡すのかを指定しており、以下の2つが入る可能性があります。

ARRAY_FILTER_USE_KEY : 配列のキーのみコールバック関数に渡す
ARRAY_FILTER_USE_BOTH : 配列のキーと値をコールバック関数に渡す

コールバック関数はフィルタリングしたい条件を記述します。

一致なら「==」を、比較なら「>」や「<」を、nullを削除したい場合は「<>」を使います。
 

[PR] PHPを学んで未経験からWebエンジニアを目指す方法とは

実際に書いてみよう

実際にPHPでarray_filterを使ってフィルタリングするプログラムを書いてみましょう。
 

プログラムソースコード

<!DOCTYPE html>
<html>
<head>
  <title>PHPサンプル</title>
</head>
<body>
  <?php
    function not_is_apple($value) {
      return $value != "りんご";
    }

    $array = ["りんご", "バナナ", "みかん", "りんご", "メロン", "りんご"];
    $value = array_filter($array, 'not_is_apple');

    var_dump($value);
  ?>
</body>
</html>

 

実行結果

PHPのarray_filterを使って配列の中から特定の要素を除外して取得するサンプルプログラムの実行結果

今回はフィルタリングとして配列内の文字列から「りんご」以外を取得しています。コールバック関数の中でりんご以外という条件を書くことで、フィルタリングができていることが確認できます。

フィルタリングはPHPプログラムではよく登場するので使い方を理解して使えるようになりましょう。
 

筆者プロフィール

メンターSさん

システムエンジニアとしてこれまで行政システムや医療用システムの保守、開発に携わりました。

JavaやPython、PHP、Kotlinなど様々な言語での開発経験があります。
TechAcademyではJavaコース、Pythonコース、AIコースなど7コースを担当しています。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも、PHPやフレームワークのLaravelを使ってWebアプリケーション開発を習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。