Twig で配列に push して、その配列からランダムに値を取り出す

2019-03-26
2分で読了
更新: 2025-12-14

目次

Craft CMS でも利用されている Twig で配列に push して、さらにその配列からランダムに値を取り出す方法をご紹介します。

やりたいこと

$foo = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

このような配列を作り、この中からランダムに値を一つ取り出すイメージです。

Twig テンプレート

下記のようになります。

{% 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 でエントリをランダムに取得する

Craft CMS ントリをランダムに取得たい場合は下記の記事をご覧ください。

参考

以上です。

この記事をシェア

この記事を書いた人

Roy Okuwaki

「かたつむりくんのWWW」を運営している Roy Okuwaki(tinybeans)です。bit part 合同会社 代表社員。2007年から、Movable Type や Craft CMS などの CMS、Web 開発、AI ツールの使い方について書いています。

プロフィールを見る →

関連記事