gpt4 book ai didi

php - 我的 php 代码中 undefined offset 1 - 如何避免它?

转载 作者:行者123 更新时间:2023-11-29 11:56:46 25 4
gpt4 key购买 nike

我有一个 sql 查询返回:

start_time of the event  |  end time of the event   |   duration of the event

在我的 php 代码中,我正在迭代结果,并检查是否可以在现有事件之间插入另一个事件 - 基本上,我正在检查一个事件结束与上一个事件开始之间的时间差异比上一个事件的持续时间长 - 如果是,那么我将其结束日期保存为新创建的事件的开始日期。

我创建了一个 php 查询,该查询在执行 sql SELECT 查询后立即发生:

if($q3->rowCount()>0)
{
$check3 = $q3->fetchAll(PDO::FETCH_ASSOC);
$arr = array();
foreach ($check3 as $row) {
$arr[] = $row;
}

$firstRow = $arr[0];

for($i=0; $i < count($arr); $i++) {
$current_row = $arr[$i];
$next_row = $arr[$i+1];

if (($next_row["begin_date"] - $current_row["end_date"]) >= $duration){
$found_timestamp_for_new_event = $current_row["end_date"];
break;
}

}

$last_element = ($arr[count($arr) - 1]['end_date']);
if($end_timestamp - $last_element >= $duration){
$found_timestamp_for_new_event = $last_element;

}
}

但是,当我运行它时,我收到警告:

Notice Undefined offset: 1 in ...

并且警告位于 $next_row = $arr[$i+1]; 行中。我认为发生这种情况是因为在某些情况下查询不再返回事件,因此它看不到 $arr[$i+1]

如何修复它?

最佳答案

当到达数组的最后一个元素时,会出现错误。使用 IF 语句检查是否确实存在另一个元素。

if ( $i < count($arr)-1 ) {
// THERE IS AT LEAST ANOTHER ROW AFTER THIS
$next_row = $arr[$i+1];
} else {
// THIS IS THE LAST ROW, DO SOMETHING ELSE HERE
}

关于php - 我的 php 代码中 undefined offset 1 - 如何避免它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33064884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com