2014-08-29 2 views
-1

array_merge()를 사용했습니다. 하지만 일부 RESON을 위해 내가 필요로하는 방법을 작동하지 않습니다 ... 그래서 나는 다음과 거의 동일한 정보로 여러 배열을 HVE ...여러 배열에서 단일 배열을 만드는 방법

$array1 = array (
      '2014-06-01'=> array (
          'date'=> '2014-06-01', 
          't1'=> 20, 
          't2'=> 5 
         ); 
      '2014-06-02'=> array (
          'date'=> '2014-06-02', 
          't1'=> 20, 
         ); 
      '2014-06-03'=> array (
          'date'=> '2014-06-03', 
          't1'=> 9, 
          't2'=> 2 
         ); 
     ); 
$array2 = array (
      '2014-07-01'=> array (
          'date'=> '2014-07-01', 
          't1'=> 4, 
          't2'=> 1 
         ); 
      '2014-07-02'=> array (
          'date'=> '2014-07-02', 
          't1'=> 6, 
          't2'=> 3 
         ); 
      '2014-07-03'=> array (
          'date'=> '2014-07-03', 
          't1'=> 9, 
         ); 
     ); 

이 그래서 내가 하나 개의 목적을 위해 내 배열이 방법 대신 거의 동일한 정보를 가진 또 다른 배열을 얻기위한 또 다른 쿼리를 만드는 방법 2 개 또는 3 개의 유사한 배열로부터 다른 배열을 어떻게 만들 수 있는지 알고 싶습니다 ...

최종 배열은 제가 얻고 싶습니다. 이게 뭐야 ...

$final_arr = array (
     '01' => array (
       't2_m_jun'=>5, 
       't2_m_jul'=>1, 
     ); 
     '02' => array (
       't2_m_jun'=>0, 
       't2_m_jul'=>3, 
     ); 
     '03' => array (
       't2_m_jun'=>2, 
       't2_m_jul'=>0, 
     ); 
    ); 

지금은 01, 02, 03 ... 등입니다. 1 월 30 일부터 31 일까지의 날짜, 각 배열에서 날짜가 필요합니다. 색인이 2014-06-01 인 경우에만 01이 필요하고 그 중 두 번째 값은 필요합니다. 배열은 동일하므로 t2의 새 키와 값을 함께 사용할 수 있습니다. ...

저는 건물 기능이 좋지 않거나 배열을 사용하여 작업하는 데 도움이되지 않습니다.
시간 내 내 게시물을 읽어 주셔서 감사합니다.

답변

1

글쎄, 먼저 array_merge와 함께 넣은 다음 루프를 반복하여 새 배열을 만들어야합니다. 트릭을해야합니다 :

$new_array = array_merge($array1, $array2); 
$final_arr = array(); 
foreach($new_array as $val) { 
    $timestamp = strtotime($val['date']); 
    $day = date('d', $timestamp); 
    if(empty($final_arr[$day])) { 
     $final_arr[$day] = array(); 
    } 

    $month = strtolower(date('M', $timestamp)); 
    $final_arr[$day]['t2_m_'.$month] = $val['t2']; 
} 
관련 문제