CakePHPの「Hashクラス」の使い方紹介

カテゴリ:インターン生ブログ

公開日:2020.06.17 最終更新日:2020.06.15
このエントリーをはてなブックマークに追加

こんにちは!伊神です!

今回は、CakePHPの「Hashクラス」についてご紹介します。

配列を便利な形に組み替えが行えたり、抽出したりできるのがCakePHPの「Hashクラス」です。

公式:https://book.cakephp.org/3/ja/core-libraries/hash.html

Hashクラスとは

Hashクラスとは、配列操作を簡単にするためのクラスです。

Hashクラスは、どこからのモデルやコントローラーからでも呼び出すことができます。

Hashクラスのメソッドは、以下の式を使用して配列データの移動や要素を絞り込むことができます。

cakephpsiki

このHashクラスを使った簡単な例をご紹介します。

以下のusersという配列があったとして

「年齢(age)が40歳以上の人を取り出したい」場合通常以下の処理になります。

しかし、Hashを使うことにより簡単に記述することができます。

以上は、特定の配列を取り出せる「Hash::extract()」を使用しました。

今回は
特定の配列を取り出せる「Hash::extract()」。
配列を並び替えることができる「Hash::sort()」。
配列から特定の値で配列を組み替えることができる「Hash::combine()」。

ついてをご紹介します。

その他にも「Hash::remove()」「Hash::format()」「Hash::contains()」「Hash::check()」「Hash::diff()」などなどたくさんあるので詳しく知りたい方は

公式:https://book.cakephp.org/3/ja/core-libraries/hash.html

で調べてみてください。

※コントローラーでHashを使うには

use Cake\Utility\Hash;

をコントローラー上部に記述する必要があります。

「Hash::extract()」特定の配列を取り出すことができる

欲しい要素だけを取得できます。

Hash::extract(array|ArrayAccess $data, $path)

「名前(name)だけ」を取得したい場合

「年齢(age)が40歳以上の人を取り出したい」場合

たった一行だけで欲しい情報が取得できるのでとても便利です!

複数の指定も可能なので試してみてください!

「Hash::sort()」配列を並び替えることができる

どの次元のどんな値でもソートすることができる。

sort(array $data, $path, $dir, $type = ‘regular’)

第2引数の$dir:asc(昇順) または desc(降順) が指定可能です。
第3引数の$type:regular(通常のソート), string(文字列としてソート)など指定する。

「Hash::combine()」配列を組み替えることができる

配列を自由に組み換えることができます。

combine(array $data, $keyPath, $valuePath = null, $groupPath = null)

年齢(age)をキーとして配列にする。

最後に

今回はCakePHPのHashクラスについて簡単にご紹介しました。

Hashクラスを使うことにより配列の操作が容易になり、コードがみやすく記述ミスなども減るかなと思います。

配列操作が簡単なのでぜひHashクラス使用してみてください。

一覧へ戻る