2013-02-18 3 views
1

연관 배열에서 각 키의 가장 높은 값을 쉽게 찾을 수 있습니까?연관 배열에서 가장 높은 값 찾기

Array(

    0 => Array(
     "avgtime" => 19.75, 
     "bounces" => 3, 
     "pageviews" => 14, 
     "visitors" => 4 
    ) 

    1 => Array(
     "avgtime" => 1.125, 
     "bounces" => 7, 
     "pageviews" => 9, 
     "visitors" => 8 
    ) 

    2 => Array(
     "avgtime" => 111, 
     "bounces" => 18, 
     "pageviews" => 32, 
     "visitors" => 20 
    ) 

    3 => Array(
     "avgtime" => 6.9375, 
     "bounces" => 14, 
     "pageviews" => 18, 
     "visitors" => 10 
    ) 

    4 => Array(
     "avgtime" => 191, 
     "bounces" => 11, 
     "pageviews" => 57, 
     "visitors" => 24 
    ) 
); 

최종 결과가 될 수 있도록 각 키의 최대 값을 보유하는 배열 하나를 만들고 싶습니다.

Array(

    "avgtime" => 191, 
    "bounces" => 18, 
    "pageviews" => 57, 
    "visitors" => 24 
); 
+3

[당신이 시도 무엇?] (http://www.whathaveyoutried.com/)를 참조하십시오 [질문에 대한 최대 값을 저장 조언] (http://stackoverflow.com/questions/ask-advice)하시기 바랍니다. 또한 이것은 기본 PHP입니다. 루프를 사용하십시오. –

+0

각 배열 부분에 대해 값 0으로 변수를 만들고 배열을 반복하며 값이 변수의 값보다 높으면 값을 업데이트하십시오. – Lucas

+0

다음을 사용하여 연관 배열을 정렬 할 수 있습니다. http://php.net/manual/en/function.asort.php – danjp

답변

3

배열 반복 처리 각 키

$temp = array(); 
foreach ($data as $item) { 
    foreach ($item as $key => $value) { 
     $temp[$key] = max(
       isset($temp[$key]) ? $temp[$key] : $value, 
       $value); 
    } 
} 
0
function maxRecursive(array $arr) { 
    $maxArray = array(); 
    array_walk_recursive($arr, function($val, $key) use(&$maxArray){ 
     if((!$maxArray[$key]) || $maxArray[$key] < $val){ 
      $maxArray[$key] = $val; 
     } 
    }); 
    return $maxArray; 
} 
관련 문제