从关联数组中回收选定的值

时间:2015-02-24 19:48:08

标签: php associative-array

我不想在关联数组中回显最后两个值,无法弄清楚,请帮忙。

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

这回应了所有的值,我希望回显除了最后的2个。

4 个答案:

答案 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);
}