2012-07-26 200 views
0

如何搜索多維數組中的值。Php多數組搜索

我想接收在[創建]

尋找一個特定的日期EX(2012-07-25)中的所有項和接收陣列[0] [0]和數組[0] [1]

Array 
(
[0] => Array 
    (
     [0] => Array 
      (
       [id_store] => 3 
       [id_product] => 11 
       [monitored] => 0 
       [created] => 2012-07-25 
      ) 

     [1] => Array 
      (
       [id_store] => 3 
       [id_product] => 12 
       [monitored] => 0 
       [created] => 2012-07-25 
      ) 

     [2] => Array 
      (
       [id_store] => 4 
       [id_product] => 11 
       [monitored] => 0 
       [created] => 2012-07-26 
      ) 
    ) 

) 
+0

array_search()的用戶註釋中有幾個例子:http://nz.php.net/manual/en/function.array-search.php – 2012-07-26 20:55:55

回答

2

這樣的事情應該用array_filter()工作:

$target = '2012-07-25'; 
$matches = array_filter($array[0], function($el) use($target) { 
    return $el['created'] == $target; 
); 
0

沒有測試過這一點,但它應該工作:

$results = search_date($my_array, $my_date); 

`

function search_date($array, $date, &$result=array()) 
{ 
    foreach($array as $key=>$value) 
    { 
     if($key == 'created' && $value == $date) 
     { 
      $result[]=$array; 
      continue; 
     } 
     if(is_array($item)) 
     { 
      search_date($item, $date, $result); 
     } 
    } 
    return $result; 
} 

就個人而言,我將完全拋棄你的數據格式和使用對象模型更適合的任務。