小编Cha*_*ana的帖子

在PHP中创建两个相等高度的随机纵向和横向图像列

鉴于随机数量的纵向和横向图像,我正在尝试编写PHP代码以输出两列高度相等的列:

  • 通过将值"1"分配给风景图像并将"2"分配给人像,我的想法是将总图像($ totalphotos)除以2,然后检查图像值($ photoval)是否超过该数字因为它遍历循环.
  • 例如,如果您有6个总图像,并且第一列已经有2个风景图像,而第三个图像它是一个肖像,它将重新排序数组(array_splice)并将肖像图像向下移动然后继续下一个图片.
  • 如果输出已创建两个相等高度的列(例如第一列中的3个横向和第二列中的1个横向+ 1个纵向,则删除最后一个图像)

我不确定我的方法在循环期间尝试输出html是否正确,或者是否更有意义分析数组并首先重新排序图像然后创建第二个循环以输出html.

我的代码有点脏,我的"array_splice"方法可能甚至不完全正确.如果您看到更好的方法,请随意废弃我的代码并向我展示更好的内容!任何帮助是极大的赞赏!!

<?php

     $photoval = 0;
     $totalcolumns = 0;
     $totalphotos = count($photos);

     for ($counter = 0; $counter < $totalphotos; $counter++) :

            $photo = $photos[$counter];

            if ($photoval == 0) echo "        <div class=\"column\">\n";

            if ($photo['orientation'] == "portrait" && $photoval >= $totalphotos/2) {
            if ($counter == $totalphotos)
                    echo "        </div>\n";                
                    array_splice($photos, $counter, 1, array($photo));

                    continue;
            }
?>
     <div class="<? echo $photo['orientation'] ?> thumbnail">
          <a href="<?php echo $photo['link'] ?>">
               <img src="<?php if ($photo['orientation'] == "landscape") echo …
Run Code Online (Sandbox Code Playgroud)

php landscape portrait image

5
推荐指数
1
解决办法
1403
查看次数

标签 统计

image ×1

landscape ×1

php ×1

portrait ×1