2017-12-29 8 views
-2

날짜, 로그인 이름 및 시간 (시간의 길이)으로 구성된 배열의 배열이 있습니다. 내가 날짜와 로그인이 모두 다른 같은 경우, 그것은 함께 시간을 추가하도록 그것을 만들려고다차원 배열의 특정 값 통합

[0]=> 
    [0]=> "2015-09-06" 
    [1]=> "user1" 
    [2]=> "8947226" 
[1]=> 
    [0]=> "2015-09-06" 
    [1]=> "user1" 
    [2]=> "6664923" 
[2]=> 
    [0]=> "2015-09-24" 
    [1]=> "user2" 
    [2]=> "654654" 

: 여기처럼 막연하게 보이는 것입니다.

[0]=> 
    [0]=> "2015-09-06" 
    [1]=> "user1" 
    [2]=> "15612149" 
[1]=> 
    [0]=> "2015-09-24" 
    [1]=> "user2" 
    [2]=> "654654" 

내가 내 주요 문제들은 반드시 날짜 또는 로그인 순서로 수 없기 때문에, 그들은 모두 무작위있어 배열을 검색하는 방법을 생각 :처럼 그래서 볼 것이다.

if ($i != 0) { 
     if ($date == $bigArray[$prevIndex][0] && $login == $bigArray[$prevIndex][1]) { 

      $bigArray[$prevIndex][2] += $time; 

     } else { 

      array_push($bigArray, array($date, $login, $time)); 

      $prevIndex++; 

     } 

    } else { 

     array_push($bigArray, array($date, $login, $time)); 


    } 

을하지만 그들은 임의의 순서로되어 있기 때문에 그것은 작동하지 않습니다
먼저 생각하기 때문에 나는 그들이 순서 일종의 될이 것하고 있었다. 배열을 먼저 정렬하려고 시도했지만 작동하지 않습니다.

+1

지금까지 무엇을 했습니까? 코드를 게시하십시오. – Bluetree

답변

0

할 방법이 있지만 어쩌면 최선이 아닐 수도 있습니다.

<?php 

$arr = []; 
$arr[0] = ["2015-09-26", "user1", "8947226"]; 
$arr[1] = ["2015-09-26", "user1", "6664923"]; 
$arr[2] = ["2015-09-24", "user2", "654654"]; 

// Variable to store the new values. 
$arr2 = []; 

// Scrolls through the array 
foreach($arr as $ar) { 

    // Creates a key to identify date and login 
    $key = md5($ar[0].$ar[1]); 

    // Checks whether the value is already in the variable $arr2 
    if (isset($arr2[ $key ])) { 

     // If so, adds the values in ms 
     $arr2[ $key ][2] += $ar[2]; 
    } else { 
     $arr2[ $key ] = $ar; 
    } 
} 

// Use the array_values to display only the values (without displaying the $key); 
var_export(array_values($arr2)); 
+0

그 덕분에, 정말 고마워! –

관련 문제