2016-08-24 59 views
1

我有一個帶有鍵的PHP多維數組,並且下面的數組有日期。按給定值返回數組鍵(給出返回日期的月份)

Array (
    [123] => Array 
    (
     [one] => 2016-01-22 10:32:15 
     [two] => 2016-02-21 14:24:15 
     [three] => 2016-02-12 11:00:15 
    ) 

    [553] => Array 
    (
     [one] => 2016-03-22 10:32:15 
     [two] => 2016-02-21 14:24:15 
     [three] => 2016-08-12 11:00:15 
    ) 

) 

我需要按給定月份得到密鑰。例如:

$value = '2016-02'; 

return 123 -> 2 
return 552 -> 1 

如何才能實現這一目標? 謝謝。

+1

if $ value ='2016-02';那麼輸出將是: - 123 - > 2和123 - > 3和552 - > 2?你不覺得這會輸出嗎?交叉檢查一次 –

+1

@Anant是的,我會用這些值來計數。最後,我只需要計算在給定月份中具有日期的主鍵。 –

+0

只是使用一個foreach和一個if – Ghost

回答

2

你可以像下面簡單的辦法: -

<?php 

$array = Array (
    '123' => Array 
    (
     'one' => '2016-01-22 10:32:15', 
     'two' => '2016-02-21 14:24:15', 
     'three' => '2016-02-12 11:00:15' 
    ), 
    '553' => Array 
    (
     'one' => '2016-03-22 10:32:15', 
     'two' => '2016-02-21 14:24:15', 
     'three' => '2016-08-12 11:00:15' 
    ) 
); 

$value = '2016-02'; 
$final_data = array(); 
foreach ($array as $key=> $arr){ 
    foreach($arr as $key1=>$val){ 
    if(strpos($val,$value)!==false){ 
     $final_data[$key][]=$key1; 
    } 
    } 
} 

echo "<pre/>";print_r($final_data); 

輸出: - https://eval.in/627935

或者這個人是有幫助的: -

https://eval.in/627936

0

你可以做它簡單如下。我稍微改變一下代碼。

<?php 
$date = Array (
123 => Array 
(
    "2016-01-22 10:32:15", 
    "2016-02-21 14:24:15", 
    "2016-02-12 11:00:15" 
), 
553 => Array 
(
    "2016-03-22 10:32:15", 
    "2016-02-21 14:24:15", 
    "2016-08-12 11:00:15" 
) 
); 
$givenDate = "2016-02"; 
$givenMonth = explode("-",$givenDate)[1]; 

foreach ($date as $key => $value){ 
    foreach ($value as $k => $v){ 
     $d = explode(" ", $v); 
     $d = explode("-", $d[0]); 
     if($d[1] ==$givenMonth){ 
      echo $key."=>".$k."<br/>"; 
     } 
    } 
} 
相關問題