在PHP数组中打印项目

时间:2011-05-19 16:50:32

标签: php arrays

有没有办法在数组中打印一定数量的项目?

例如,打印$ array中的前3项。然后再打印$ array中的下三个项目。

有什么建议吗?

非常感谢

8 个答案:

答案 0 :(得分:2)

您可以使用array_slice来完成工作:

<?php
$input = array("a", "b", "c", "d", "e");

$output = array_slice($input, 2);         // return "c", "d", et "e"
$output = array_slice($input, -2, 1);     // return "d"
$output = array_slice($input, 0, 3);      // return "a", "b", et "c"
?>

答案 1 :(得分:1)

这是你必须要构建的东西,所以根据你对'print'的定义,它可能是print_r,var_dump,或者只是echo,你可以使用这样的函数作为一个例子:

function printmyarraybythrees($array,$index) {
    for ($x = $index; $x < $index + 3; $x++) print_r($array[$x]);
}

答案 2 :(得分:1)

对于第一组:

for ($i = 0; $i < 3; $i++)
echo $array[$i];

第二组:

for ($i = 3; $i < 6; $i++)
echo $array[$i];

答案 3 :(得分:0)

几个月前我发现的一件事是Array Iterator Class

http://php.net/manual/en/class.arrayiterator.php

你应该可以使用它来迭代一个数组,并从页面的某个地方拿走你离开的地方。

答案 4 :(得分:0)

for($i=0;$i<3;$i++) {
    echo $array[$i];
}

然后,

for($i=0;$i<6;$i++) {
    echo $array[$i];
}

答案 5 :(得分:0)

function stepArray($array, $step) {
    static $location = 0;

    $started = $location;

    while ($location < ($started + $step) && isset($array[$location])) {
        echo $array[$location];

        $location++;
    }
}

这只是我的头脑,并假设阵列按顺序编号。无论您调用多少次,静态变量都会跟踪您在数组中的位置。所以打电话

stepArray($array, 3);

会打印前三个元素,然后

stepArray($array, 2);

会打印下两个,等等。

答案 6 :(得分:0)

您的数组的图像如下:

$ary = array('Apple', 'Banana', 'Mango', 'Coconut', 'Orange');

现在你要打印第一个3.这可以按如下方式进行:

for($i=0;$i<3;$i++)
    echo $ary[$i];

对于第二个3,您可以使用以下内容:

for($i=3;$i<6;$i++)
   echo $ary[$i];

答案 7 :(得分:0)

class ArrayHelper
{
   private static function printArray($from, $to, $array)
   {
     $_new = new Array();
     if($from <= count($array) && $to <= count($array)
     {
     for($i = $to; $i <= $from; $i++)
     {
         $_new[] = $array[$i];
     }
     }
     print_r($_new);
  }
}
$ar = array('One', 'Two', 'Three', 'Four');
ArrayHelper::printArray(0, 2);