Doctrine の ArrayCollection クラスの使い方まとめ

Doctrine の ArrayCollection の使い方をかんたんにまとめてみました。 PHP の組み込みの配列ではパッとできないことがシンプルにエレガントに書けるので便利です。

オリジナルのリファレンスはこちら。

以下にかんたんに書いていきます。

use Doctrine\Common\Collections\ArrayCollection;


// CRUD の順で書いていきます


/**
 * Create
 */

// 引数に配列を渡す 渡さない場合のデフォルトは空配列
$a = new ArrayCollection([1, 3, 5, 'key' => 'value 1']);
$empty = new ArrayCollection();


/**
 * Read
 */

// 要素の取得
$a->get('key');  // => 'value 2'

// 要素の取得
// キーが存在しない場合は例外や警告はあげずに NULL を返す
$a->get('unknow key');  // => NULL

// 長さの取得
$a->count();  // => 5

// 空かどうかのチェック
$a->isEmpty();  // => FALSE

// 特定の値のインデックス取得
$a->indexOf('value 1');  // => 'key'

// すべてのキー、すべての値の取得
$a->getKeys();
$a->getValues();

// キーの存在チェック
$a->containsKey('key');  // => TRUE

// 値の存在チェック
$a->contains('value 1');  // => TRUE

// 特定の条件を満たす値の存在チェック
$a->exists(function ($e) { return ($e % 3) === 0; });  // => TRUE


/**
 * Update
 */

// 要素の追加(末尾)
$a->add(10);

// 要素の追加(指定したキー)
$a->set('name', 'Baku');

// 要素の変更
$a->set('key', 'value 2');


/**
 * Delete
 */

// 要素の削除(キーで指定)
$a->remove('key');

// 要素の削除(値で指定)
$a->removeElement(3);

// 要素の全削除
$a->clear();


/**
 * その他
 */
// 配列の取り出し
$a->toArray();

// 他のインスタンスの生成( map )
$a->map(function ($e) { return $e * 2; });

// 他のインスタンスの生成( filter )
$a->filter(function ($e) { return $e % 3 === 0; });

以上です。

便利ですね。

使用頻度の高そうなものはすべて取り上げたつもりですが、他にもいくつかメソッドが用意されているので使い倒したい場合はリファレンスに目を通してみてください。