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

