2011-05-19 4 views
1

Есть ли способ распечатать заданное количество элементов в массиве?Печать элементов в массиве PHP

Так, например, напечатайте первые 3 элемента в $ массиве. Затем позже напечатайте следующие 3 элемента в массиве $.

Любые предложения?

Большое спасибо

ответ

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); 

печатью Будет ли следующие два и т.д.

+0

(Он также будет работать только для этого массива, не может использовать другой с ним.) – Dan

+0

Ваш гений. ура – steve

1

Это то, что вы должны строить, так что в зависимости от того, что ваше определение «Печать», это может быть print_r, var_dump или просто эхо, и вы можете использовать функцию, как это как только один пример:

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

для первой группы:

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

для второй группы:

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

Одна вещь, которую я нашел несколько месяцев назад был массив итератора класса

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

Вы должны быть в состоянии использовать это, чтобы перебрать массив и забрать, где вы остановились где-то на странице ,

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

Тогда позже,

for($i=0;$i<6;$i++) { 
    echo $array[$i]; 
} 
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" 
?> 
+0

Очень хороший ответ. +1 для вас. – Tareq

+0

Brillient. Спасибо – steve

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]; 
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); 
Смежные вопросы