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

如何从指定key启动foreach遍历数组,循环完后续元素再遍历前置元素?

解决方案

要实现从当日对应的deal开始按顺序遍历数组,同时保留$key和$value的组合使用需求,可以按以下步骤操作:

  • 定义一周的键顺序
    先把数组的键按周一到周日的固定顺序整理成数组,作为遍历的基准:

    $weekOrder = [
        'monday_deal',
        'tuesday_deal',
        'wednesday_deal',
        'thursday_deal',
        'friday_deal',
        'saturday_deal',
        'sunday_deal'
    ];
    
  • 获取当日对应的数组键
    通过PHP的日期函数生成当前日期对应的数组键:

    // 得到当前星期几的小写英文名称,比如周三返回'wednesday'
    $currentDay = strtolower(date('l'));
    $currentKey = $currentDay . '_deal';
    
  • 生成从当日开始的遍历顺序
    找到当前键在基准顺序中的位置,把基准数组拆成「当前键到末尾」和「开头到当前键之前」两部分,合并成新的遍历顺序:

    $currentIndex = array_search($currentKey, $weekOrder);
    $traversalOrder = array_merge(
        array_slice($weekOrder, $currentIndex),
        array_slice($weekOrder, 0, $currentIndex)
    );
    
  • 用foreach遍历目标数组
    遍历重新排列后的键数组,每次从原数组中取出对应的$key和$value:

    $dealArray = [
        'monday_deal' => 753394,
        'tuesday_deal' => 753401,
        'wednesday_deal' => 753435,
        'thursday_deal' => 753437,
        'friday_deal' => 771844,
        'saturday_deal' => 15047,
        'sunday_deal' => 753437
    ];
    
    foreach ($traversalOrder as $key) {
        $value = $dealArray[$key];
        // 这里编写你的业务逻辑,比如输出或处理键值对
        echo "{$key}: {$value}\n";
    }
    

这样就能实现从当日开始,按后续日期循环一周的遍历逻辑,同时全程使用foreach,满足你对$key和$value组合使用的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 10:57:21