正确使用Natsort

时间:2013-11-27 12:13:06

标签: php


我制作了这个小脚本,从目录中提取照片的名称。

<?php                     
$dirname = "newspaper_articles/nameofperson/1951-1977/";
$articlepath = glob($dirname."*.jpg");
foreach ($articlepath as $article) {
echo basename($article,".jpg").'<br>';
}     
?>

目录中的照片命名如下;
1 articletitle.jpg
2 articletitle.jpg
11 articletitle.jpg
12 articletitle.jpg
21 articletitle.jpg
22 articletitle.jpg

(注意序列。我希望php在页面上显示它)

然而我的代码却像这样呈现;
1 articletitle.jpg
11 articletitle.jpg
12 articletitle.jpg
2 articletitle.jpg
21 articletitle.jpg
22 articletitle.jpg

我从PHP手册中了解到我应该使用natsort。我是这样做的:

foreach ($articlepath as natsort($article))

我收到错误(警告:natsort()期望参数1为数组) 你怎么看待为什么这不起作用

2 个答案:

答案 0 :(得分:0)

如果$articlepath是数组,请执行以下操作:

natsort($articlepath)
foreach ($articlepath as $article) {

您的问题是您尝试对表示为字符串的数组的单个元素进行排序,但natsort仅适用于数组。

答案 1 :(得分:0)

您确定要对数组的每个元素执行natsort吗?

你的意思是:

natsort($articlepath)
foreach ($articlepath as $article)