2011-07-26 8 views
0

배열을 가져온 결과로이 배열에서 최소 &을 어떻게 찾을 수 있습니까? 어쩌면 당신은 배열의 배열을 가지고있는 것처럼array, php에서 min & max 찾기

Array ([0] => 0 [pr] => 0) 

Array ([0] => 200 [pr] => 200) 

Array ([0] => 250.1 [pr] => 250.1) 

Array ([0] => 500 [pr] => 500) 

Array ([0] => 800 [pr] => 800) 

Array ([0] => 5656 [pr] => 5656) 

Array ([0] => 34343 [pr] => 34343) 

Array ([0] => 565656 [pr] => 565656) 
+0

사용 대신 "배열을 가져 오기"의 "열을 가져"하고 그것은'min'과'max'와 함께 할 사소한 기능. 배열을 평평하게하는 것은 의미가 없습니다. 그것은 차가운 음식을 주문하고 나중에 가열하는 것과 같습니다. 당신은 처음부터 뜨거운 주문해야합니다. – Jon

답변

0

그것은 각각의 내부 배열은 같은 값을 가진 두 개의 키를 가지고 있으며, 당신은 값의 전체 세트의 최소 및 최대를 원 보인다. 이 경우 flatten the array을 원할 수 있으므로 값이있는 단일 배열을 얻은 다음 PHP minmax 함수를 사용하십시오. 배열을 매개 변수로 사용할 수 있습니다. (내가 준 링크에서 복사)

패턴 화 된 기능 :

function flatten(array $array) { 
    $return = array(); 
    array_walk_recursive($array, function($a) use (&$return) { $return[] = $a; }); 
    return $return; 
} 

당신은 그것을 사용하십시오 방법 :

// assuming $the_array is your array of arrays: 

$flat_array = flatten($the_array); 
$min = min($flat_array); 
$max = max($flat_array); 
1

선이 연결되는 방식을 완전히 명확하지 않다,하지만를 I 여기서 다차원 배열을 말하고 있다고 가정합니다. 이 경우는 반복 쉬울 것이다 :

$max = null; 
foreach ($outer as $inner) { 
    $max = max($max, $inner[0]); // Compare with previous max 
} 

// $max is now 565656 
0
$min = $max = 0; 
foreach ($arrays as $arr) 
{ 
     if($arr[0] < $min) { $min = $arr[0]; } 
     if($arr[0] > $max) { $max = $arr[0]; } 
} 

var_dump($min); 
var_dump($max); 
2
$max = max(array_map('current', $array)); 
$min = min(array_map('current', $array)); 
관련 문제