PHP-如何按订单搜索文件夹图像

PHP-如何按订单搜索文件夹图像,php,search,directory,Php,Search,Directory,我有以下代码来搜索/images/文件夹中的图像并对其进行回显。但是,每次我刷新页面时,它都会以随机顺序显示图像。这些图像被命名为1、2、3、4等等。有没有办法使最后一个数字(例如:4)是第一个显示的数字,依此类推 <?php $dirname = "images"; $images = scandir($dirname); shuffle($images); $ignore = Array(".", ".."); foreach($images a

我有以下代码来搜索/images/文件夹中的图像并对其进行回显。但是,每次我刷新页面时,它都会以随机顺序显示图像。这些图像被命名为1、2、3、4等等。有没有办法使最后一个数字(例如:4)是第一个显示的数字,依此类推

<?php
    $dirname = "images";
    $images = scandir($dirname);
    shuffle($images);
    $ignore = Array(".", "..");
    foreach($images as $curimg){
        if(!in_array($curimg, $ignore)) {
            echo "<img src=\"". $dirname . '/' . $curimg ."\">" ;
        }
    }               
?>

提前谢谢。

应该是正确的函数,而不是洗牌

更新:

最好是直接通过scandir对其进行排序:

$images = scandir($dirname, SCANDIR_SORT_DESCENDING);

应该是正确的函数,而不是洗牌

更新:

最好是直接通过scandir对其进行排序:

$images = scandir($dirname, SCANDIR_SORT_DESCENDING);

这是由于你的洗牌。您正在随机化数组。让我把你介绍给:哪个是

<?php
    $dirname = "images";
    $images = scandir($dirname);
    $images = arsort(array_reverse($images, true));
    $ignore = Array(".", "..");
    foreach($images as $curimg){
        if(!in_array($curimg, $ignore)) {
            echo "<img src=\"". $dirname . '/' . $curimg ."\">" ;
        }
    }               
?>
用krsort和sort。。我返回:

<img src="Images/11.png"> 
<img src="Images/10.png"> 
<img src="Images/9.png"> 
<img src="Images/8.png"> 
<img src="Images/7.png"> 
<img src="Images/6.png"> 
<img src="Images/5.png"> 
<img src="Images/4.png"> 
<img src="Images/3.png"> 
<img src="Images/2.png"> 
<img src="Images/1.png"> 


我想这就是你要找的

这是由于你的洗牌。您正在随机化数组。让我把你介绍给:哪个是

<?php
    $dirname = "images";
    $images = scandir($dirname);
    $images = arsort(array_reverse($images, true));
    $ignore = Array(".", "..");
    foreach($images as $curimg){
        if(!in_array($curimg, $ignore)) {
            echo "<img src=\"". $dirname . '/' . $curimg ."\">" ;
        }
    }               
?>
用krsort和sort。。我返回:

<img src="Images/11.png"> 
<img src="Images/10.png"> 
<img src="Images/9.png"> 
<img src="Images/8.png"> 
<img src="Images/7.png"> 
<img src="Images/6.png"> 
<img src="Images/5.png"> 
<img src="Images/4.png"> 
<img src="Images/3.png"> 
<img src="Images/2.png"> 
<img src="Images/1.png"> 


我想这就是你要找的

您可以尝试将图像名称加载到数组中,然后对数组进行排序,然后返回图像标记

您可以尝试将图像名称加载到数组中,然后对数组进行排序,然后返回图像标记


<?php

$dirname = "images";
$files = scandir($dirname, 1); // using SCANDIR_SORT_DESCENDING PHP 5.4+ ONLY!
foreach ($files as $file) {
 if ($file !== '.' && $file !== '..') {
     echo "<img src=\"". $dirname . '/' . $file ."\">" ;
}
}
?>



natsort是不必要的,因为scandir已经输出了文件名Sorted我已经重新阅读了问题并更新了我的答案,尽管有问题。如果你知道我的意思的话,它是按1,10,11,12,2,3,4排序的。我不是一个真正的脚本专家,你能更新代码使其正确工作吗?抱歉。@coldpumpkin我只是在尝试一些可能有用的东西,给我的更新一个更新你的问题,使用你期望的典型数组排序是不必要的,因为scandir已经输出了排序的文件名。我已经重新阅读了问题并相应地更新了我的答案。不过还是有问题。如果你知道我的意思的话,它是按1,10,11,12,2,3,4排序的。我不是一个真正的脚本专家,你能更新代码使其正确工作吗?抱歉。@coldpumpkin我只是在尝试一些可能有用的东西,请给我的更新一个更新,用一个你期望的典型数组来回答你的问题。
$images=scandir($dirname,1)[1]:@Grmn不使用1,但常量SCANDIR\u SORT\u降序。两者都不起作用!您已经删除了
洗牌($images)?好了,现在它可以工作了!谢谢。
$images=scandir($dirname,1)[1]:@Grmn不使用1,但常量SCANDIR\u SORT\u降序。两者都不起作用!您已经删除了
洗牌($images)?好了,现在它可以工作了!谢谢。虽然这是使用“标准排序”,而不是我想要的“自然排序”。参考这个你在问题中没有说过的词。。。(然后使用natsort做一些事情,然后使用array_reverse)
$images=scandir($dirname);natsort($图像)$images=数组\反向($images)或者你会怎么想?虽然这是使用“标准排序”,而不是我想要的“自然排序”。参考这个你在问题中没有说过的词。。。(然后使用natsort做一些事情,然后使用array_reverse)
$images=scandir($dirname);natsort($图像)$images=数组\反向($images)或者你会怎么想?