如何在php中按字母顺序排列图片?

时间:2017-11-06 12:49:55

标签: php sorting arraylist

这是我的阵列 基本上现在我有一个包含100,000张图像的目录。所有都是不同的名称,如d2jd29df.png fj329f.png等。我希望它在网页上按字母顺序列出。有人能给我一个正确的推动方向吗?

img 1 of code

img 2 of code

3 个答案:

答案 0 :(得分:0)

您需要将整个目录读入数组,然后按字母顺序自然地对数组(即人类的方式)进行排序。最后,迭代每个文件并回显每个文件的文件名。

<?php
$files  = array();
$dir    = '/path/to/images';
$handle = opendir($dir);

if ($handle) {
    while (false !== ($file = readdir($handle))) {
        if ($file !== '.' && $file !== '..') {
            $files[] = $file;
        }
    }
    closedir($handle);
}
sort($files, SORT_NATURAL);

foreach ($files as $file) {
    echo $file.'<br />';
}

答案 1 :(得分:0)

试试这个:

<?php
$dir = "path/to/image";

$images = glob("$dir/*.*");

$items = [];
foreach ($images as $image) {
    $items[] = basename($image);
}
sort($items, SORT_STRING);

foreach ($items as $item) {
    echo $item . '<br>';
}

将$ dir的值更改为包含图像的目录。

答案 2 :(得分:0)

最简单的方法是使用scandir()

$contents = array_diff(scandir('/path/to/my/images/folder'), array('.', '..'));

// If you need to apply a custom sorting algorithm then try using
// natsort(), natcasesort(), usort(), or uasort() on $contents
// before looping through it.
//
// http://php.net/manual/en/array.sorting.php

foreach($contents as $item)
{
    echo $item;
}

此外,您可能希望查看sorting_order的{​​{1}}参数。