PHP返回一个数组中的前三个元素然后另外三个元素

时间:2013-03-10 17:27:09

标签: php arrays

我有一个包含20个元素的数组,数组中的每个元素都包含一个图像。我正在制作它以使图像尺寸交替。三个图像应该是中等大小,然后接下来的四个是小的,第七个是大的。模式应该持续到阵列结束。现在我有它工作,所以每7个图像都很大,其余的都很小。我不确定设置媒体图像的最佳方法是什么。所以: 阵列[]

[0]
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]
[19]
[20]

我希望[0],[1],[2],[8],[9],[10],[15],[16],[17]都是中等大小。

以下是我的代码。

        foreach ($images as $image ) {
                $img_size = "small";
                if($i !==0 && $i % 7 == 0) {
                    $img_size = "large";
                }else{
                    $img_size = $img_size;
                }
        }

2 个答案:

答案 0 :(得分:0)

试试这个:

$i = 0;
$count = count($a)-1; // get the maximum index of array $a

while ($i <= $count) {

    echo $a[i];
    if ($i+1 <= $count) echo $a[$i+1];
    if ($i+2 <= $count) echo $a[$i+2];

    $i+=8;
} // while

答案 1 :(得分:0)

一些if / else逻辑:

<?php

$m = 3;
$s = 7;
$l = 8;

$counter = 1;
for($i=0;$i<=20;$i++){
    if($counter <= $m){
        $img_size = "medium";
    }elseif($counter <= $s){
        $img_size = "small";
    }else{
        $img_size = "large";
    }
    if($counter == $l) $counter = 0;

    $counter++;
    echo "i = $i and img_size = $img_size <br>";
}

?>