如何从指定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
相关产品推荐
相关产品推荐

