You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Gravity Forms中获取列表字段的值?

如何用rgar()获取Gravity Forms列表字段的数据

嘿,刚好之前折腾过Gravity Forms的列表字段取值,给你详细说下怎么操作:

首先得明白,Gravity Forms的列表字段在$entry数组里的存储结构和普通字段不一样——它是多维数组,也可以通过带点分隔的键名直接定位到具体行的子字段。下面分两种常用场景来说:

场景1:获取整个列表的所有数据

如果需要处理列表里的每一行,你可以直接用列表字段的ID通过rgar()拿到整个列表的多维数组,再遍历处理。

假设你的列表字段ID是5,每行有2个子字段,代码示例:

// 获取整个列表的数组
$list_entries = rgar($entry, '5');

// 遍历每一行数据
if (!empty($list_entries)) {
    foreach ($list_entries as $row_num => $row_data) {
        // 每行的第一个子字段(序号从1开始)
        $first_field_value = rgar($row_data, '1');
        // 每行的第二个子字段
        $second_field_value = rgar($row_data, '2');
        
        // 这里可以添加你的业务逻辑,比如输出或者存储值
        echo "第{$row_num}行:字段1={$first_field_value},字段2={$second_field_value}<br>";
    }
}

$list_entries的结构大概是这样的(打印出来看更直观):

Array(
    [1] => Array(
        [1] => "第一行第一个字段内容",
        [2] => "第一行第二个字段内容"
    ),
    [2] => Array(
        [1] => "第二行第一个字段内容",
        [2] => "第二行第二个字段内容"
    )
)

场景2:直接获取某一行的特定子字段

如果你只需要列表中某一行的某个字段值,可以用**「列表ID.行号.子字段序号」**的格式作为键传入rgar(),行号和子字段序号都是从1开始计数的。

比如:

// 获取列表ID为5的第1行第1个子字段的值
$row1_field1 = rgar($entry, '5.1.1');

// 获取列表ID为5的第2行第2个子字段的值
$row2_field2 = rgar($entry, '5.2.2');

调试小技巧

要是不确定字段的键名结构,直接打印整个$entry数组就能一目了然:

print_r($entry);

这样你能清晰看到列表字段的所有键和对应的值,方便定位问题。

内容的提问来源于stack exchange,提问作者Nima

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 18:47:50