header('Content-Type: application/json');
$folder = $_POST['folder'];
$dir = $folder."/";
//start directory
$dirHandle = opendir($dir);
$i = 0;
$directoryfiles = array();
while ($file = readdir($dirHandle)) {
//check only image type file.
if(!is_dir($file) && preg_match("/.png|.jpg|.gif/i", $file)){
$i++;
$totalfiles = "$dir$files";
$src = $totalfiles;
$temp = new stdClass;
$temp->num = $i;
$temp->src = $src;
$temp->name = $files;
$directoryfiles["img".$i] = $temp;
}
}
// close directory
closedir($dirHandle);
//turn array to json
echo json_encode($directoryfiles);
我正在使用ajax从php获取图像返回,我遇到的问题是图像没有像文档那样按字母顺序排列。
我试图使用 sort($directoryfiles),但不起作用。
如何确保我的图像按文档的字母顺序排列? 斯堪迪尔() 对我有帮助吗? 在这里需要帮助。 谢谢
康洛格的回归
image3-000000-023.png
image2-000000-022.png
image1-000000-021.png
image4-000000-024.png
我需要的订单
image1-000000-021.png
image2-000000-022.png
image3-000000-023.png
image4-000000-024.png
您可以对解决方案使用 asort。
asort - 对数组进行排序并维护索引关联
请参阅示例:
$directoryfiles = array("image3-000000-023.png", "image2-000000-022.png", "image1-000000-021.png", "image4-000000-024.png");
//Sort array using asort() function...Place below single line after while loop into your code
asort($directoryfiles);
//Print output...
print('<pre>');
print_r($directoryfiles);
print('</pre>');
//Output...
Array
(
[2] => image1-000000-021.png
[1] => image2-000000-022.png
[0] => image3-000000-023.png
[3] => image4-000000-024.png
)
您可以看到asort()
的输出与您想要的一样。
对于实时示例,您可以检查PHPFIDDLE。单击运行 - F9 并查看输出。
请尝试以下代码:
<?php
$array1 = array("image3-000000-023.png", "image2-000000-022.png", "image1-000000-021.png", "image4-000000-024.png");
echo "<pre>";
natsort($array1);
echo "'nNatural order sorting'n";
print_r($array1);
?>