如何解决glob 图像和按名称排序在数字 10 以上不起作用
$dirname = "some/directory";
$images = glob($dirname."*.{png,jpg,jpeg}",GLOB_BRACE);
sort($images);
foreach($images as $item){
$title = explode('/',trim($item,'/'));
$fourth_segment = $title[3];
$title= str_replace([".jpg",".jpeg",".png"],"",$title[3]);
echo '<h3>'.$title.'</h3><br /><img src="'.$item.'" style="width:500px;" /><br /><br />';
}
这会对我的目录进行排序并在我的网页上按排序顺序发布其图像。我现在的问题是,它只能工作到第 9 位。
我的目录:
- 1 01.01.2020.jpg
- 2 03.04.2020.jpg
- [3-8 个关注]
- 9 05.06.2020.jpg
- 10 08.07.2020.jpg
- 1 01.01.2020.jpg
- 10 08.07.2020.jpg
- 2 03.04.2020.jpg
- [3-8 以下]
- 9 05.06.2020.jpg
所以它的排序应该是数字 9,但我不明白为什么 10 跟随 1 以及我如何解决这个问题。
有人有想法吗?
最好的问候
解决方法
似乎是按字母顺序进行排序。在字母排序中,10 出现在 9 之前是有意义的。同样,对于按字母排序的单词,“BA”出现在“I”之前也是有意义的。 (0 = A,1 = B,I = 9).
According to the documentation,排序函数接受一个标志参数来修改排序行为。您可以尝试使用这样的排序功能:
sort($images,SORT_NATURAL);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。