【问题标题】:How do I use scandir (or another method) to sort the directory results alphabetically?如何使用 scandir (或其他方法)按字母顺序对目录结果进行排序?
【发布时间】:2012-12-12 20:15:49
【问题描述】:

根本不熟悉 PHP。我使用来自另一个站点的旧代码(我没有编写)为客户创建 CMS。问题是,这里的目录结果不是按字母顺序返回的。我已经读过 scandir 会这样做,而 readdir 不会。我也知道数组或任意数量的排序函数也可以工作......我只是不知道该怎么做:) 任何帮助将不胜感激。

<select name="image1[<?print($i);?>]">
<option value="none.gif">no photo available</option>
<?
$handle = opendir($art_image);
while ($file = readdir($handle)) {
    if ($file !="." && $file !="..") {
        option($file,$row["image1"]);
    }
}
?>
</select>

【问题讨论】:

  • 您查看过scandir 上的手册吗?几乎解释了这一切。
  • 不。正如我所说,“根本不熟悉 PHP”。因此,我不写 PHP 或理解它的语法。这就是我在这里的原因。
  • @user1898972,这个问题解决了吗?

标签: php arrays sorting readdir scandir


【解决方案1】:
<select name="image1[<?print($i);?>]">
<option value="none.gif">no photo available</option>
<?

while ($item = scandir($art_image, SCANDIR_SORT_DESCENDING)) 
{
    if ('.' !== $item[0]) // skip . .. and hidden files all in one swoop
    {
        option($item, $row['image1']);
    }
}

?>
</select>

【讨论】:

    【解决方案2】:
    while ($file = scandir($art_image)) {
    ...
    

    这应该为你做。 scandir 不需要句柄。

    【讨论】:

      【解决方案3】:

      您可以简单地使用scandir,然后使用sort() 对array() 进行排序

      【讨论】:

      • 欢迎来到 SO!请注意,在提供答案时通常会留下示例代码,并且为了将来参考,请尝试提供更完整的答案,因为许多用户会标记/否决简短的答案。
      猜你喜欢
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      • 2013-08-19
      • 2022-01-13
      • 1970-01-01
      • 1970-01-01
      • 2018-06-13
      • 2011-02-03
      相关资源
      最近更新 更多