微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用natsort对函数的返回值进行排序

如何解决使用natsort对函数的返回值进行排序

我正在尝试编写一个PHP脚本,该脚本以数字排序的数组输出文件名。具体来说,脚本必须搜索成千上万张jpeg随机照片,并输出名称中带有“ Flower ...”的数字排序jpeg。排序文件名或缺少文件名是我的问题。尽管该站点上的一位编码专家建议使用natsort($ array)函数,但是我对编码的缺乏经验使我无处可去。就是说,这是我原始的PHP脚本,它输出未排序的“ Flower ...” jpeg文件数组:

<?PHP
//PHP SCRIPT: getimages.PHP
Header("content-type: application/x-javascript");

//This function gets the file names of all images in the current directory
//and outputs them as a JavaScript array
function returnimages($dirname=".") {
$pattern="/Flower*/"; //valid file name
$files = array(); 
$curimage=0;
if($handle = opendir($dirname)) {
    while(false !== ($file = readdir($handle))){
        if (preg_match($pattern,$file)){ //if this file has a valid name
            //Output it as a JavaScript array element
            echo 'galleryarray['.$curimage.']="'.$file .'";';
            $curimage++;
            }
        }

        closedir($handle);
    }
    return($files);
}

echo 'var galleryarray=new Array();'; //Define array in JavaScript
returnimages() //This outputs an UNSORTED array image file names

这是我原始的PHP脚本的UNSORTED输出

var galleryarray=new Array();
galleryarray[0]="Flower4.jpg";
galleryarray[1]="Flower5.jpg";
galleryarray[2]="Flower1.jpg";
galleryarray[3]="Flower2.jpg";
galleryarray[4]="Flower3.jpg";

这是我修改后的尝试,使用natsort()函数进行排序失败:

<?PHP

Header("content-type: application/x-javascript");

function returnimages($dirname=".") {
    $pattern="(/Flower*/)"; //valid file name
    $files = array();
    $curimage=0;
    if($handle = opendir($dirname)) {
        while(false !== ($file = readdir($handle))){
            if (preg_match($pattern,$file)){
                echo 'galleryarray['.$curimage.']="'.$file .'";';
                $curimage++;
            }
        }

        closedir($handle);
    }
    return($files);
}

array = (returnimages()); // My Failed attempt to assign return-values to "array"
natsort(array); // My Failed attempt to sort "array"


echo 'var galleryarray=new Array();';
array // This was intended to output a SORTED array,but didn't

?>

这次使用natsort()函数的失败尝试未产生任何输出。我怀疑我没有正确使用此功能,并且无法阅读此论坛上的其他帖子来解决此问题。请指教。谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。