2008-10-30 4 views
1

PHP에서 두 번째와 세 번째 열의 최대 값과 최소값을 얻는 방법을 아는 사람이 있습니까?PHP를 사용하는 배열의 MAX & MIN 값

$ar = array(array(1, 10, 9.0, 'HELLO'), 
      array(1, 11, 12.9, 'HELLO'), 
      array(3, 12, 10.9, 'HELLO')); 

출력이 같아야합니다

최대 (12.9) 분 (10)

답변

1
<?php 
$ar = array(array(1, 10, 9.0, 'HELLO'), 
      array(1, 11, 12.9, 'HELLO'), 
      array(3, 12, 10.9, 'HELLO')); 
function col($tbl,$col){ 
    $ret = array(); 
    foreach ($tbl as $row){ 
     $ret[count($ret)+1] = $row[$col]; 
    } 
    return $ret; 
} 
print (max(col($ar,2))."\n"); 
print (min(col($ar,1))."\n"); 
?> 

이 당신이 보는 무엇인가? 나는 그것이 가장 효율적인 방법이 아닌 것 같다.

+0

또 다른 옵션을 선택합니다. 입력으로 –

+0

왜 $ ret [count ($ ret) +1] = $ row [$ col]; 무엇이 잘못 되었습니까? $ ret [] = $ row [$ col]; –

+0

tom : 방금 $ ret 배열의 끝에 요소를 추가하려고했습니다. 나는 $ ret [] 표기법을 모른다 : D BaileyP : 무엇이 브레이크 조건이 될지 모를 - 입력 배열은 3 개의 원소를 가지며, 모든 원소는 4 원소 배열이다. – belunch

2

난 당신이 완전히 사각형의 2 차원 배열이없는 경우이 방법을 깰 수 있음을 언급하고 싶습니다

<?php 

function array_rotate($array) 
{ 
    $rotated = array(); 
    foreach ($array as $rowIndex => $col) 
    { 
     foreach ($col as $colIndex => $value) 
     { 
      $rotated[$colIndex][$rowIndex] = $value; 
     } 
    } 
    return $rotated; 
} 

$ar = array(array(1, 10, 9.0, 'HELLO'), 
      array(1, 11, 12.9, 'HELLO'), 
      array(3, 12, 10.9, 'HELLO')); 

$ar = array_rotate($ar); 

echo max($ar[2]), "\n", min($ar[1]); 
관련 문제