2011-07-26 512 views
0

這是獲取數組的結果,我如何從這個數組中找到最小值&。從數組中找到最小值和最大值,php

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

這是不完全清楚的線是如何連接的,但我假設我們正在這裏討論一個多維數組。在這種情況下,它會很容易迭代:

$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));