2012-01-31 76 views
0

我有一個輸入數據數組,我需要找到最大值和最小值。接線柱陣列可能看起來像以下任何一種,取決於用戶選擇的選項:max()多維數組

[a] => Array 
(
    [0] => 2 
) 

[a] => Array 
    (
     [0] => 2 
     [1] => 4 
     [2] => 7 
    ) 
[a] => Array 
    (
     [0] => 2 
     [1] => 4 
     [2] => Array 
      (
       [0] => 7 
      ) 

    ) 

我有它通過排序陣列工作,搶最小值和最大值時,「A」始終是一個單二維數組,但由於我們已經添加了它的多維選項,我卡住了。

+1

遞歸....... – AlienWebguy 2012-01-31 00:14:47

+0

這個http://stackoverflow.com/questions/4497810/min-and-max-in-multidimensional-array – IsisCode 2012-01-31 00:15:40

+0

首先展開數組http://stackoverflow.com/questions/7011451/transaprently-flatten-an-array,然後應用'max()'函數。 – mario 2012-01-31 00:17:54

回答

2

我會用一個Iterator:http://php.net/spl.iterators.php

function array_max($arr) { 
    $max = null; 

    foreach (new RecursiveIteratorIterator(new RecursiveArrayIterator($arr)) as $value) { 
    if ($max === null || $value > $max) { 
     $max = $value; 
    } 
    } 
    return $max; 
} 

我認爲你可以弄清楚如何做你自己array_min()

+0

這似乎工作。是的,我可以寫array_min()。 – gandalf007 2012-01-31 00:29:07