2011-05-19 85 views
1

有沒有辦法在數組中打印一定數量的項目?在PHP數組中打印項目

因此,例如,打印$ array中的前3個項目。然後再打印$ array中的下3個項目。

有什麼建議嗎?

非常感謝

回答

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

    $started = $location; 

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

     $location++; 
    } 
} 

這只是我的頭頂部,並呈陣列按順序編號。無論您調用多少次,static變量都會跟蹤您在數組中的位置。因此調用

stepArray($array, 3); 

將打印頭三個元素,那麼

stepArray($array, 2); 

將打印接下來的兩個等

+0

(這也只適用於該陣列,不能用於其他用途。) – Dan 2011-05-19 17:03:28

+0

您的天才。乾杯 – steve 2011-05-19 17:16:19

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
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 2011-05-19 16:59:49

+0

明亮。謝謝 – steve 2011-05-23 13:01:15

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