如何定义foreach循环中的最后一个元素?

时间:2018-05-24 12:15:59

标签: php sorting foreach

这是我的每个循环

Route::put('kontak_edit/{id}','ProductController@update')->name('kontak_edit');

结果是:

foreach ($row as $key => $value) {
    echo $key;
}

我现在想要$ key one four end three two 总是在最后。这可能吗?

这样的东西
end

结果是

  foreach ($row as $key => $value) {
        if($key == "end"){
           echo $key as last;
        } else {
           echo $key;
        }
    }

2 个答案:

答案 0 :(得分:1)

正如我的评论所述,只需将静态值添加到array

的末尾即可
array_push($row, "end");

答案 1 :(得分:1)

如果需要,可以创建自定义函数,将数组传递给函数。在该函数内部,你可以按照你想要的方式过滤数据。我创建了formatRow()函数,它只是从数组中删除你想要的键,然后重新插入它,因为新的值总是插入到数组,你得到所需的输出

    $row = array(

    'one'=>"data",
    'four'=>"data",
    'end'=>"enddata",
    'three'=>"data",
    'two'=>"data",

    );

    $formatted_row = formatRow($row,'end');

    echo "<pre>";
    var_dump($formatted_row);


    //output 

    // array(5) {
    //   ["one"]=>
    //   string(4) "data"
    //   ["four"]=>
    //   string(4) "data"
    //   ["three"]=>
    //   string(4) "data"
    //   ["two"]=>
    //   string(4) "data"
    //   ["end"]=>
    //   string(7) "enddata"
    // }



function formatRow ($row,$key_that_you_need_last) {
    if (array_key_exists($key_that_you_need_last,$row)) {
            $value = $row["$key_that_you_need_last"];
        unset($row["$key_that_you_need_last"]);
        $row["$key_that_you_need_last"] = $value;
    }
    return $row;  
}

如果您想获得更多,这些是您可能想要经历的链接。 array_map array_walk