読者です 読者をやめる 読者になる 読者になる

PHPと自動化が好きなんだい

アラサー未経験でPHPを覚えて、自動化にハマったWebプログラマー。主にWebネタ、MySQL、Linux、Apacheをやるよ

【PHP】TWIGで配列の重複を削除する関数は?

twig PHP プログラミング、アルゴリズム、サンプルプログラム

PHP Elephant

どうも、yohyamaです。

以前、調べてみたんですが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クラスで処理したほうがテストも書けますし、色々な関数が使えると思うので、複雑な処理は辞めたほうが良いと思います・・・。

 

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

 

 

基本からしっかり学ぶ Symfony2入門