在 php 中使用 foreach 循环获取下一个元素值
get next element value using foreach loop in php
我尝试将 next() 函数与 foreach 循环一起使用 returns 当前元素 value.I 正在 foreach 循环中从数据库中获取数据。
$result = $wpdb->get_results ( "SELECT * FROM interestclass
where SortingCode='bake1r20210113' ||
SortingCode='bake1r20210225' ||
SortingCode='bake1r20210506' ||
SortingCode='bake1r20210612' ||
SortingCode='bake1r20210813'" );
foreach ( $result as $print ) {
$nextRowValue=next(next($result));
echo "<td> working".$nextRowValue->LessonCode."</td><br>";
}
$wpdb->get_results
returns 一个结果集行数组和一个 foreach 处理一个数组,所以 foreach 完成了数组向下移动的所有工作,您需要做的就是使用 $row
作为您正在处理的当前行
$results = $wpdb->get_results ( "SELECT * FROM interestclass
where SortingCode='bake1r20210113' ||
SortingCode='bake1r20210225' ||
SortingCode='bake1r20210506' ||
SortingCode='bake1r20210612' ||
SortingCode='bake1r20210813'" );
foreach ( $results as $row ) {
echo "<td> working {$row->LessonCode}</td>";
}
根据您在下方的评论补充代码。
因此,如果您想针对数组中的下一行测试这一行,只需更改 foreach 的格式即可为数组提供 key
。然后,您可以在 $results
数组上使用它来访问数组中的下一个事件。小心,这样做很容易超出数组的边界,所以首先你需要检查简单的 IF
不会发生这种情况
$results = $wpdb->get_results ( "SELECT * FROM interestclass
where SortingCode='bake1r20210113' ||
SortingCode='bake1r20210225' ||
SortingCode='bake1r20210506' ||
SortingCode='bake1r20210612' ||
SortingCode='bake1r20210813'" );
$resultCount = count($results);
foreach ( $results as $key => $row ) {
// first make sure we have a next row
if ( $key < $resultCount ){
$nextRow = $results[$key+1];
if ( $row->LessonCode == $nextRow->LessonCode ) {
echo "<td> working {$row->LessonCode}</td>";
}
}
}
如果你运行
foreach ( $result 作为 $print ) {
该程序迭代 $result 数组。在每个循环中,$print 都是 $result 的一个元素,因此 next 不是必需的。
我认为代码是:
foreach ( $result 作为 $print ) {
echo "working".$print->LessonCode."
";}
而且我在你的代码中看到你使用 next(next($result)) 它会跳到数组中的 2 个位置,而不是一个。
我尝试将 next() 函数与 foreach 循环一起使用 returns 当前元素 value.I 正在 foreach 循环中从数据库中获取数据。
$result = $wpdb->get_results ( "SELECT * FROM interestclass
where SortingCode='bake1r20210113' ||
SortingCode='bake1r20210225' ||
SortingCode='bake1r20210506' ||
SortingCode='bake1r20210612' ||
SortingCode='bake1r20210813'" );
foreach ( $result as $print ) {
$nextRowValue=next(next($result));
echo "<td> working".$nextRowValue->LessonCode."</td><br>";
}
$wpdb->get_results
returns 一个结果集行数组和一个 foreach 处理一个数组,所以 foreach 完成了数组向下移动的所有工作,您需要做的就是使用 $row
作为您正在处理的当前行
$results = $wpdb->get_results ( "SELECT * FROM interestclass
where SortingCode='bake1r20210113' ||
SortingCode='bake1r20210225' ||
SortingCode='bake1r20210506' ||
SortingCode='bake1r20210612' ||
SortingCode='bake1r20210813'" );
foreach ( $results as $row ) {
echo "<td> working {$row->LessonCode}</td>";
}
根据您在下方的评论补充代码。
因此,如果您想针对数组中的下一行测试这一行,只需更改 foreach 的格式即可为数组提供 key
。然后,您可以在 $results
数组上使用它来访问数组中的下一个事件。小心,这样做很容易超出数组的边界,所以首先你需要检查简单的 IF
$results = $wpdb->get_results ( "SELECT * FROM interestclass
where SortingCode='bake1r20210113' ||
SortingCode='bake1r20210225' ||
SortingCode='bake1r20210506' ||
SortingCode='bake1r20210612' ||
SortingCode='bake1r20210813'" );
$resultCount = count($results);
foreach ( $results as $key => $row ) {
// first make sure we have a next row
if ( $key < $resultCount ){
$nextRow = $results[$key+1];
if ( $row->LessonCode == $nextRow->LessonCode ) {
echo "<td> working {$row->LessonCode}</td>";
}
}
}
如果你运行
foreach ( $result 作为 $print ) {
该程序迭代 $result 数组。在每个循环中,$print 都是 $result 的一个元素,因此 next 不是必需的。
我认为代码是:
foreach ( $result 作为 $print ) {
echo "working".$print->LessonCode."
";}
而且我在你的代码中看到你使用 next(next($result)) 它会跳到数组中的 2 个位置,而不是一个。