2016-02-05 207 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

相關問題