2015-04-23 52 views
0

內數組元素的最大值,這可能是很容易的,但人不是我如何獲得在PHP

var_dump($array)這樣的。

array (size=12) 
0 => int 1 
1 => int 7 
2 => int 8 
3 => int 9 
4 => int 3 
5 => int 8 
6 => int 3 
7 => int 6 
8 => int 5 
9 => int 3 
10 => int 4 
11 => int 5 

我所需要的最大值從索引2-5和從索引4至8和從8至11

如何可以達致這。我試過max()函數,但得到錯誤。

+0

蔭沒有得到爲什麼有人在這裏downvoted我的問題?我錯誤地發佈了這個問題,我做了任何錯誤 – Akilsree1

+0

我不給downvotes,但我可能知道原因。這個問題太微不足道了。如果你玩數組,你會在4-5個小時內得到解決方案。相反,您發佈了一個簡單的問題,但沒有盡力而爲。此外,爲了提高問題質量,您需要展示您迄今爲止所嘗試的內容。 – AtanuCSE

回答

1

您可以迭代搜索最大值的數組。首先將var $max設置爲負值,如果索引$i中的值大於$max,則在循環內部更改該值。

<?php 

$array = array(
0 => 1, 
1 => 7, 
2 => 8, 
3 => 9, 
4 => 3, 
5 => 8, 
6 => 3, 
7 => 6, 
8 => 5, 
9 => 3, 
10 => 4, 
11 => 5 
); 

function maxArray($from, $to, $array) { 
    $max = -1; 
    for($i = $from; $i <= $to; $i++) { 
     if($array[$i] > $max) { 
      $max = $array[$i]; 
     } 
    } 

    return $max; 
}  

echo maxArray(2, 5, $array) . "<br>"; 
echo maxArray(4, 8, $array) . "<br>"; 
echo maxArray(8, 11, $array) . "<br>"; 

?> 

輸出:

9 
8 
5 
+0

感謝@阿德里安這個想法,但我喜歡簡單的代碼。 – Akilsree1

+1

@ Akilsree1不客氣;-) –

+0

如果數組包含負整數會怎麼樣? – mpen

3
max(array_slice($arr,2,3)) 
max(array_slice($arr,4,4)) 
max(array_slice($arr,8,3))