PHP-如何按订单搜索文件夹图像
我有以下代码来搜索/images/文件夹中的图像并对其进行回显。但是,每次我刷新页面时,它都会以随机顺序显示图像。这些图像被命名为1、2、3、4等等。有没有办法使最后一个数字(例如:4)是第一个显示的数字,依此类推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
<?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)代码>或者你会怎么想?