Twigで配列の重複を削除する関数は?

Twigで配列の重複を削除する関数は?以前、調べてみたんですがTWIGで配列の重複を削除する関数はありません!

ということで一工夫する必要があるようです。

以下に配列の重複を削除するコードを載せました。

こんな感じになります

{% set resultArr = [] %}

{% for name in array %}

{% if name not in resultArr %}

{% set resultArr = resultArr|merge([name]) %}

{% endif %}

{% endfor %}

ソースの解説

基本的なアルゴリズムの流れは以下の通りです。

  1. 削除後の結果を入れる配列($resultArr)を用意
  2. 元の配列($array)から値を一つずつ取り出す。
  3. $resultArrの中の値と一致しなければ、$resultArrに格納する。
  4. 以上を元の配列の要素の数だけ繰り返す。

そもそもtwigで複雑な処理は書かないほうが良くね?

良い質問ですね。

テンプレートで処理せずにModelクラスで処理したほうがテストも書けますし、色々な関数が使えると思うので、複雑な処理は辞めたほうが良いと思います・・・。

以上のやつはあくまで一例です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする