よくあるご質問

mt:loop タグや mt:foreach タグに hash 属性を指定するとどうなりますか?

hash 属性は PowerCMS X ver.2.2 にて追加された属性で、多次元配列をループ処理するときの挙動が変わります。

前提

連想配列を用意します。

<mt:block from_json="sample_array">
  [
    {
      "path": "path/foo",
      "label": "foo"
    },
    {
      "path": "path/bar",
      "label": "bar"
    }
  ]
</mt:block>

A. hash 指定がないとき

連想配列のキーを指定することで値を直接取得できます。

テンプレート

<mt:loop name="sample_array">--------------------
path: <mt:var name="path">
label: <mt:var name="label">

__value__: <mt:vardump name="__value__">
</mt:loop>

__value__ には値がセットされません。

出力

--------------------
path: path/foo
label: foo

__value__: NULL

--------------------
path: path/bar
label: bar

__value__: NULL

B. hash 指定があるとき

hash属性を指定すると、__value__ に配列がセットされます。

テンプレート

<mt:loop name="sample_array" hash>--------------------
path: <mt:var name="__value__.path">
label: <mt:var name="__value__.label">

__value__: <mt:vardump name="__value__">
</mt:loop>

※ 連想配列のキーでは値を取得できません。

出力

--------------------
path: path/foo
label: foo

__value__: array(2) {
  ["path"]=>
  string(6) "path/foo"
  ["label"]=>
  string(7) "foo"
}

--------------------
path: path/bar
label: bar

__value__: array(2) {
  ["path"]=>
  string(6) "path/bar"
  ["label"]=>
  string(7) "bar"
}

更新日:2025年05月19日

カテゴリー

FAQ キーワード検索

解決しなかった場合は
下記よりお問い合わせください

お問い合わせ

日本語
ふりがな付き
English
简体中文
繁體中文
한국어