Craft CMS でも利用されている Twig で配列に push して、さらにその配列からランダムに値を取り出す方法をご紹介します。
Craft CMS でも利用されている Twig で配列に push して、さらにその配列からランダムに値を取り出す方法をご紹介します。
$foo = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
このような配列を作り、この中からランダムに値を一つ取り出すイメージです。
下記のようになります。
{% set foo = [] %}
{% for i in 0..9 %}
{% set foo = foo|merge([i]) %}
{% endfor %}
配列の要素数は {{ foo|length }} です。ランダムに取得するインデックスは {{ random(foo) }} です。
ポイントは、最初に空の配列をセットして、そこに merge
で追加していく、その時に merge(i)
ではなく merge([i])
のように配列を merge
するところです。
配列から値をランダムに取り出すのは {{ random(foo) }}
とするだけでOKです。
例えば Craft CMS などの CMS には複数の値を登録しておいて、その複数のイメージの URL を配列にセットして、その URL の中からランダムに値を取り出せば、アクセスするたびに背景画像やトップページのメインイメージを変更する、といったことが可能です。
Craft CMS ントリをランダムに取得たい場合は下記の記事をご覧ください。
以上です。