2012-09-06 4 views
0

나는 다차원 배열을 가지고 있습니다. 형식은 다음과 같습니다 :PHP 다가오는 이벤트 찾기

private function array_to_json($array) {  

    $arr_out = array(); 
    foreach ($array as &$r) { 
     $arr_out[] = explode(";", $r); 
    } 
    unset($r); 
    return $arr_out; 
} 

을 그리고이 결과를 얻을 :

Array 
(
    [1] => 2012.09.04;01:00;NZD;ANZ Commodity Price;1;0.5%;;-0.5%;1346720400 
    [2] => 2012.09.04;01:30;AUD;Current Account Balance;2;-11.80B;-12.2B;-14.90B;1346722200 
    [3] => 2012.09.04;01:30;JPY;Labor Cash Earnings (YoY);2;-1.2%;-0.3%;-0.6%;1346722200 
    [4] => 2012.09.04;04:30;AUD;RBA Interest Rate Decision;3;3.5%;3.5%;3.5%;1346733000 
    [5] => 2012.09.04;05:45;CHF;Gross Domestic Product (YoY);3;0.5%;1.6%;2.0%;1346737500 
) 

지금 나는이 기능을 사용하여 변환

[8] 소인입니다
Array 
(
    [0] => Array 
     (
      [0] => 2012.09.04 
      [1] => 01:00 
      [2] => NZD 
      [3] => ANZ Commodity Price 
      [4] => 1 
      [5] => 0.5% 
      [6] => 
      [7] => -0.5% 
      [8] => 1346720400 
     ) 

    [1] => Array 
     (
      [0] => 2012.09.04 
      [1] => 01:30 
      [2] => AUD 
      [3] => Current Account Balance 
      [4] => 2 
      [5] => -11.80B 
      [6] => -12.2B 
      [7] => -14.90B 
      [8] => 1346722200 
     ) 

    [2] => Array 
     (
      [0] => 2012.09.04 
      [1] => 01:30 
      [2] => JPY 
      [3] => Labor Cash Earnings (YoY) 
      [4] => 2 
      [5] => -1.2% 
      [6] => -0.3% 
      [7] => -0.6% 
      [8] => 1346722200 
     ) 

    [3] => Array 
     (
      [0] => 2012.09.04 
      [1] => 04:30 
      [2] => AUD 
      [3] => RBA Interest Rate Decision 
      [4] => 3 
      [5] => 3.5% 
      [6] => 3.5% 
      [7] => 3.5% 
      [8] => 1346733000 
     ) 

    [4] => Array 
     (
      [0] => 2012.09.04 
      [1] => 05:45 
      [2] => CHF 
      [3] => Gross Domestic Product (YoY) 
      [4] => 3 
      [5] => 0.5% 
      [6] => 1.6% 
      [7] => 2.0% 
      [8] => 1346737500 
     ) 

    [5] => Array 
     (
      [0] => 2012.09.04 
      [1] => 05:45 
      [2] => CHF 
      [3] => Gross Domestic Product s.a. (QoQ) 
      [4] => 2 
      [5] => -0.1% 
      [6] => 0.2% 
      [7] => 0.7% 
      [8] => 1346737500 
     ) 
) 

.

첫 번째 예정된 일정 ([8]> 시간())을 찾고이를 반환하려면 어떻게해야합니까? 감사합니다.

답변

1

모든 [8] 항목을 살펴보고 각 항목에 대해 time()보다 큰지 확인해야합니다. 그렇다면, 배열을 만드십시오. 결국이 배열에서 min function을 사용하여 가장 작은 숫자를 가져옵니다.

코드 :

$future = array(); 
foreach($arr_out as $a) 
    if ($a[8] > time()) 
     $future[] = $a[8]; 

$nearest = min($future); //contains the first upcoming event 
0

이 시도 : -

$marr = array 
(
    array 
     (
      '0' => '2012.09.04', 
      '1' => '01:30', 
      '2' => 'AUD', 
      '3' => 'Current Account Balance', 
      '4' => 2, 
      '5' => '-11.80B', 
      '6' => '-12.2B', 
      '7' => '-14.90B', 
      '8' => 1346919271, 
     ),array 
     (
      '0' => '2012.09.04', 
      '1' => '01:30', 
      '2' => 'AUD', 
      '3' => 'Current Account Balance', 
      '4' => 2, 
      '5' => '-11.80B', 
      '6' => '-12.2B', 
      '7' => '-14.90B', 
      '8' => 1346919686, 
     ) 
); 

$upComingArray = ''; 
foreach($marr as $key) 
{ 
    $end = end($key); 
    if ($end > time()){ 

     $upComingArray[] = $key; 
    } 
} 
echo "<pre>"; 
print_r($upComingArray);