PHP搜索数组并仅返回符合条件的第一个值

时间:2015-04-14 22:53:47

标签: php arrays date scandir

我有一个标有YYYY-MM-DD.jpg的文件目录。

使用PHP,我试图搜索这些文件的数组并打印出今天之前的最新日期的文件名(没有jpg)。

例如:今天是2015-04-14

文件:

  • 2015-04-20.jpg< -in the future
  • 2015-04-11.jpg< -first file has a 在今天的日期之前的日期
  • 2015-04-02.jpg
  • 2015-04-01.jpg

我想返回“2015-04-11”。

我几天都在研究这个问题,试图将多个帖子中的内容拼凑起来。所以,我经历了很多迭代。但这里有一个:

$scan = scandir($comic_path,1); //go through directory DESC
$last_comic = substr($scan[0],0,10); //substr scan to get just the date

function LastComic(){
    foreach ($scan as $acomic) {
  if ($acomic < $last_comic) {
    echo $acomic . "\n";
  }
  $last_comic = $acomic;
}}
LastComic($last_comic);

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

嗯,你的代码很好:

$today = date("Y-m-d");
$last_comic = substr($scan[0],0,10);
foreach ($scan as $acomic) {
    $only_date = substr($acomic,0,10);
    if ($only_date < $today) {
        $last_comic = $acomic;
        break;
    }
}

这是你想要完成的吗?

答案 1 :(得分:0)

这很干净:

$scan = scandir($comic_path,1); //go through directory DESC
$last_comic = date('Y-m-d');  // today's date
foreach ($scan as $acomic) {
  if (substr($acomic,0,10) < $last_comic) {
    $last_comic = substr($acomic,0,-4);
    echo "$last_comic\n";
    break;
  }
}