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

如何将ACF Repeater字段每行值存入单个PHP数组?

解决ACF Repeater日期字段存入数组的问题

嘿,我猜你是在循环ACF Repeater的时候犯了个小错误——应该是把数组初始化的代码放到循环里了,导致每次循环都新建一个空数组,所以每次var_dump出来的都是只包含当前行日期的单元素数组。

给你一个正确的实现方式:

// 先在循环外面初始化一个空数组,用来存所有日期
$dates = [];

// 检查Repeater字段是否有数据
if (have_rows('你的_repeater_slug')) {
    // 遍历每一行Repeater内容
    while (have_rows('你的_repeater_slug')) {
        the_row();
        // 获取当前行的日期子字段值(替换成你的日期子字段slug)
        $current_date = get_sub_field('your_date_subfield_slug');
        // 把当前日期追加到数组里
        $dates[] = $current_date;
    }
}

// 现在var_dump出来的就是包含所有日期的完整数组了
var_dump($dates);

之前的问题根源应该是你把$dates = [];写在了while循环内部,这样每循环一次就重置一次数组,自然每次只能存一个值。

另外提醒一下,这里用到的字段名都是ACF后台设置的字段slug(也就是字段的英文标识,不是显示名称),别写错了哦。如果还是有问题,可以先在循环里单独echo $current_date,确认每个日期都能正常获取到。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:49:31