2016-02-05 131 views
1

我有一张包含文件名和时间的照片数组。我想找到在小时内拍摄的照片。例如,我从10.00,10.15,10.59拍摄照片。所以当我搜索。我希望这些照片在10.00下列出。如何按照时间对图像排序进行排序

我认为这与in_arrayarray_search有关。但我仍然不知道如何。

这里是我的数组:$ pixArr []

Array 
(
    [0] => Array 
     (
      [file] => IMG_7519.JPG 
      [time] => 13:02 
     ) 

    [1] => Array 
     (
      [file] => IMG_7518.JPG 
      [time] => 13:01 
     ) 

    [2] => Array 
     (
      [file] => IMG_7517.JPG 
      [time] => 13:00 
     ) 

    [3] => Array 
     (
      [file] => IMG_7516.JPG 
      [time] => 11:39 
     ) 

    [4] => Array 
     (
      [file] => IMG_7515.JPG 
      [time] => 11:39 
     ) 

    [5] => Array 
     (
      [file] => IMG_7514.JPG 
      [time] => 11:38 
     ) 

    [6] => Array 
     (
      [file] => IMG_7513.JPG 
      [time] => 11:29 
     ) 

    [7] => Array 
     (
      [file] => IMG_7512.JPG 
      [time] => 11:26 
     ) 

    [8] => Array 
     (
      [file] => IMG_7511.JPG 
      [time] => 11:26 
     ) 

) 

我希望它出来是这样的:

<a href="listPhoto.php?time=10-00">10:00</a> 

listPhoto.php

<? 
//now how to list files by hour??? 
?> 
+1

'array_filter'函数 –

回答

0

你可以使用array_filter作为@u_mulder建议:

<?php 
$pixArr = array 
(
    0 => array 
     (
      'file' => 'IMG_7519.JPG', 
      'time' => '13:02' 
     ), 

    1 => array 
     (
      'file' => 'IMG_7518.JPG', 
      'time' => '13:01' 
     ), 

    2 => array 
     (
      'file' => 'IMG_7517.JPG', 
      'time' => '13:00' 
     ), 

    3 => array 
     (
      'file' => 'IMG_7516.JPG', 
      'time' => '11:39' 
     ), 

    4 => array 
     (
      'file' => 'IMG_7515.JPG', 
      'time' => '11:39' 
     ), 

    5 => array 
     (
      'file' => 'IMG_7514.JPG', 
      'time' => '11:38' 
     ), 

    6 => array 
     (
      'file' => 'IMG_7513.JPG', 
      'time' => '11:29' 
     ), 

    7 => array 
     (
      'file' => 'IMG_7512.JPG', 
      'time' => '11:26' 
     ), 

    8 => array 
     (
      'file' => 'IMG_7511.JPG', 
      'time' => '11:26' 
     ), 

); 

print_r(array_filter($pixArr, function($value){ 
    if($value['time'] >= '11:00' && $value['time'] <= '12:00') 
     return $value; 
})); 

见演示:https://eval.in/513466

+0

kamal pal,这是一个完美的脚本!而如果我想从数组中找到开始时间和结束时间呢? – Wilf

+0

@Wilf你可以使用相同的array_filter或简单地通过 –

0

您可以使用assort此函数对数组,使得数组的索引保持它们与它们所关联数组元素相关。

我已经尝试过这个问题。

$arr = [ 
[ 
    "file" => "IMG_7519.JPG", 
    "time" => "13:02" 
], 

[ 
    "file" => "IMG_7519.JPG", 
    "time" => "12:02" 
], 
[ 
    "file" => "IMG_7519.JPG", 
    "time" => "15:02" 
] 
]; 

asort($arr); //sorting array 
echo "<pre>".print_r($arr)."</pre>"; 

这就是结果。

Array ([1] => Array ([file] => IMG_7519.JPG [time] => 12:02) [0] => Array ([file] => IMG_7519.JPG [time] => 13:02) [2] => Array ([file] => IMG_7519.JPG [time] => 15:02)) 
+0

Wida循环,如何将11.xx组中的这些文件放在一起? – Wilf

相关问题