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

如何在CodeIgniter中按相同索引比较数组并执行对应函数?

嘿,你这里其实没必要用嵌套循环哦!你的需求是相同索引的元素匹配,所以直接遍历其中一个数组,用当前索引去另一个数组里取对应值就好,嵌套循环反而会让每个array1的元素和array2的所有元素都配对一遍,完全不是你要的效果。

给你改好的代码,直接就能用:

<?php 
// 先确保两个数组长度一致,避免索引越界报错
if (count($array1) !== count($array2)) {
    echo "两个数组长度不匹配,无法一一对应处理!";
} else {
    foreach($array1 as $index => $day) {
        $time = $array2[$index];
        
        // 判断array2对应索引的值是否为空
        if (!empty($time)) {
            // 执行值不为空时的函数,比如把日期和时间传进去
            handleNonEmptyTime($day, $time);
        } else {
            // 执行值为空时的函数,比如只传日期
            handleEmptyTime($day);
        }
    }
}

// 示例函数,你可以替换成自己的业务逻辑
function handleNonEmptyTime($day, $time) {
    echo "{$day} 有安排:{$time}<br>";
}

function handleEmptyTime($day) {
    echo "{$day} 暂无安排<br>";
}
?>

补充几个关键点:

  • 用foreach($array1 as $index => $day)遍历,同时拿到索引$index和数组元素$day,直接通过$array2[$index]获取对应时间值
  • 如果只想严格判断空字符串(而不是把0、null等也视为空),可以把!empty($time)换成$time !== ""
  • 加了数组长度判断,是为了避免其中一个数组更短导致的索引越界问题,如果你能保证两个数组长度始终一致,这部分可以省略

这样写逻辑清晰,效率也比嵌套循环高很多,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:56:13