2011-07-26 32 views
0

配列をフェッチした結果、この配列からmin &を見つけることができます。配列から最小値と最大値を見つける

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

多分あなたは、各内側の配列が同じ値を持つ2つのキーを持って、配列の配列を持っている、とあなたが値のセット全体の最小値と最大値をしたいように見えます。この場合、flatten the arrayが必要な場合があります。そのため、値が1つの配列を取得し、PHP minおよびmax関数を使用します。彼らは配列としてパラメータを取ることができます。

(私が与えたリンクからコピー)フラット化機能:あなたはそれを使用したい方法

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)); 
関連する問題