Ajax PHP 图像后按字母顺序排列


ajax php image are follow by alphabetical order

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);
?>