以相反的顺序限制for循环中的结果数

时间:2017-01-04 18:51:03

标签: php for-loop limit

我创建了一个for循环来占用我网站上的表格。最初我使用if (i++ <= 10) {来限制结果数量。

但是,我调整了for循环,因此它是相反的顺序(最近的项目是第一个)。这是我的代码:

for ($i=count($shipmentInfoArray['ShipmentList'])-1; $i >= 0; $i--) {
                                            $shipmentUrl = BASE_URL . "shipment.php?ShipmentID=" . $shipmentInfoArray['ShipmentList'][$i]['ShipmentID'];

显然,由于它倒计时而不是向上,我的原始限制代码无法正常工作。

我尝试了这个,但它没有工作:

if ($i-- >= (count($shipmentInfoArray['ShipmentList']) - (count($shipmentInfoArray['ShipmentList'])-10)) {

我希望它会占用总条目数,然后用我想要显示的数字减去相同的数字(100 - (100-10)= 10个条目。

我也试过添加一个“休息”&#39;最后,假设这不起作用,因为&#34;计数&#34;还没结束。然而,这不起作用:/

有什么建议吗?谢谢你们!

2 个答案:

答案 0 :(得分:0)

以下内容应该有效:

// Set the limit to the max number of results
$LIMIT = 10;
foreach (array_reverse($shipmentInfoArray['ShipmentList']) as
        $shipmentIndex => $shipment) {
    if ($shipmentIndex >= $LIMIT) {
        break;
    }

    // Use $shipment
}

答案 1 :(得分:0)

我觉得你正在使这个过于复杂,并且在你试图推断出由此产生的复杂性时会让自己感到困惑。有很多方法,我不知道哪一种比另一种更好......

您可以将第二个计数器(比如cmake_minimum_required(VERSION 3.3) project(PROJECT_NAME) if(WIN32) set(PATH "C:\\MinGW") endif() find_package(Curses REQUIRED) include_directories(${CURSES_INCLUDE_DIR}) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -g -Wall") set(SOURCE_FILES src/init.c etc...) add_executable(project_name ${SOURCE_FILES}) target_link_libraries(project_name ${CURSES_LIBRARIES} m) )初始化为0并在每次迭代时将其递增,作为一个简单的解决方案。