我不想在关联数组中回显最后两个值,无法弄清楚,请帮忙。
foreach($_POST as $key => $value){
echo $value;
}
这回应了所有的值,我希望回显除了最后的2个。
答案 0 :(得分:0)
在循环之前应该对数组进行切片。
<?php
$newArray = array_slice( $_POST, 0, count($_POST)-2);
foreach( $newArray AS $key => $value ) {
echo $value;
}
如果你想保留你的$ key值,那么将第4个参数设置为true为&#34;保留键&#34;:
http://php.net/manual/en/function.array-slice.php
也许这只是一个练习,但我确实想要注意,此外,依赖于你的POST元素的确切顺序听起来像一个可能导致未来问题的糟糕设计理念。
答案 1 :(得分:0)
只计算循环并且不打印最后两个循环中的值。
$i = 0;
foreach($_POST as $key => $value) {
$i++;
if($i != count($_POST) && $i != count($_POST)-1) {
echo $value;
}
}
答案 2 :(得分:0)
我宁愿这样做:
$a = array('a' => 'q','s' => 'w','d' => 'e','f' => 'r');
$arr_count = count($a) - 2;
$i = 1;
foreach($a as $k => $val){
echo $k.' - '.$val.PHP_EOL;
if ($i == $arr_count) break;
$i++;
}
答案 3 :(得分:0)
另一种替代解决方案:
<?php
$tot=count($_POST)-2;
while ($tot--) {
// you can also retrieve the key using key($_POST);
echo current($_POST);
next($_POST);
}