【问题标题】:Two scandir arrays arrays need 2 different variables in a foreach PHP两个scandir数组数组在foreach PHP中需要2个不同的变量
【发布时间】:2013-02-06 18:59:49
【问题描述】:

我有以下代码:

    $path=$_SERVER['DOCUMENT_ROOT'] . "/WOWSlider/data1/images";

    $files= array_diff(scandir($path), array('..',".")); 

    $path2=$_SERVER['DOCUMENT_ROOT'] . "/WOWSlider/data1/images/thumbs";

    $files2= array_diff(scandir($path2), array('..',"."));

foreach($files as $plaatje){

    print("

    <a href='WOWSlider/data1/images/$plaatje' class='highslide' onclick='return hs.expand(this)'>
        <img src='WOWSlider/data1/images/thumbs/$thumbnail' alt='Highslide JS'
            title='Click to enlarge' /></a>

    <div class='highslide-caption'>
        $plaatje
    </div>

    ");


}

现在我需要这样的东西:

        $path=$_SERVER['DOCUMENT_ROOT'] . "/WOWSlider/data1/images";

        $files= array_diff(scandir($path), array('..',".")); 

        $path2=$_SERVER['DOCUMENT_ROOT'] . "/WOWSlider/data1/images/thumbs";

        $files2= array_diff(scandir($path2), array('..',"."));

    foreach($files as $plaatje){
foreach($files2 as $thumbnail){

        print("

        <a href='WOWSlider/data1/images/$plaatje' class='highslide' onclick='return hs.expand(this)'>
            <img src='WOWSlider/data1/images/thumbs/$thumbnail' alt='Highslide JS'
                title='Click to enlarge' /></a>

        <div class='highslide-caption'>
            $plaatje
        </div>

        ");


    }
}

但它不起作用。 它不会在屏幕上打印任何内容。

有人知道该怎么做吗?

我正在尝试制作一种相册。 $plaatjes 是照片,$thumbnails 是照片的缩略图。

由于缩略图有不同的文件名,我需要在 foreach 中使用不同的变量,因此在 print() 中也需要。

我不想让文件名不同,因为如果我需要添加其他照片,我不必在代码中做任何事情。

【问题讨论】:

    标签: php arrays foreach scandir


    【解决方案1】:

    除非文件名彼此相关,例如

    kittens.jpg   -> kittens_thumb.jpg
    

    如果额外的东西 (_thumb) 是不变的,那么您无法以这样的自动化方式执行任何操作。您必须手动构建一个将图像与其缩略图相关联的列表。一旦你得到了那个数组,那么你就可以使用一个简单的 foreach()。

    使用“相关”文件名,您可以执行以下操作:

    foreach($files as $file) {
       $base = pathinfo($file, PATHINFO_BASENAME);
       $ext = pathinfo($file, PATHINFO_EXTENSION);
       echo "real file: $base.$ext";
       echo "thumb nail: {$base}_thumb.$ext";
    }
    

    【讨论】:

    • 它们没有关系,我不希望它们有关系。
    • 然后咬紧牙关,构建一个关联它们的数组。
    猜你喜欢
    • 2015-04-04
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多