duangan4406 2016-05-30 14:56
浏览 28
已采纳

PHP shuffle,多循环

I want to shuffle 2 loops (or function) in the same correct order, in PHP.

The code currently looks like:

<div class="overlay">

<?php

    // Get the list of all files with .jpg extension in the directory and save it in an array named $images
    $directory = "uploads/_gallery/*.jpg";

    // Create an array of images found in the uploads directory
    $images = glob($directory);

    // Randomise/shuffle the images
    shuffle($images);

    foreach( $images as $image ):
        if ($image) { ?>
            <div class="slide">
                <?php echo "<img src='" . $image . "'>"; ?>
            </div>
        <? }
    endforeach;

?>

</div>

<div class="grid">

<?php

    // Get the list of all files with .jpg extension in the directory and save it in an array named $images
    $directory = "uploads/_gallery/thumbs/*.jpg";

    // Create an array of images found in the uploads directory
    $images = glob($directory);

    // Randomise/shuffle the images
    shuffle($images);

    foreach( $images as $image ):

        if ($image) { ?>
            <figure class="unit_25">
                <?php echo "<img src='" . $image . "'>"; ?>
            </figure>
        <? }

    endforeach;

?>

</div>

I've tried creating two separate image arrays and merging those with Shuffle, but no luck.

  • 写回答

1条回答 默认 最新

  • dpxo13079 2016-05-30 15:04
    关注

    I assume the file has the same name in both directory. So shuffle $images and then use basename($images) to get the filename :

    $directory = "uploads/_gallery/*.jpg";
    $images = glob($directory);
    shuffle($images);
    
    
    // For full sized images
    foreach ($images as $image) {
        // Your stuff
    }
    
    // For thumbnails
    foreach ($images as $image) {
        $basename = basename($image);
        $thumbnailPath = "uploads/_gallery/thumbs/". $basename;
        // Your stuff
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 iOS开发关于快捷指令截屏后如何将截屏(或从截屏中提取出的文本)回传给本应用并打开指定页面
  • ¥15 unity连接Sqlserver
  • ¥15 图中这种约束条件lingo该怎么表示出来
  • ¥15 VSCode里的Prettier如何实现等式赋值后的对齐效果?
  • ¥15 流式socket文件传输答疑
  • ¥20 keepalive配置业务服务双机单活的方法。业务服务一定是要双机单活的方式
  • ¥50 关于多次提交POST数据后,无法获取到POST数据参数的问题
  • ¥15 win10,这种情况怎么办
  • ¥15 如何在配置使用Prettier的VSCode中通过Better Align插件来对齐等式?(相关搜索:格式化)
  • ¥100 在连接内网VPN时,如何同时保持互联网连接