Получить наибольшее число из массива, используя для цикла

Я пытаюсь получить наибольшее число от array, Но не получить это. Я должен получить наибольшее число из массива, используя for петля.

<?php
$a =array(1, 44, 5, 6, 68, 9);
$res=$a[0];
for($i=0; $i<=count($a); $i++){
if($res>$a[$i]){
$res=$a[$i];
}
}
?>

Я должен использовать for цикл, как я объяснил выше. Ват не так с этим?

3

Решение

Это должно работать для вас:

<?php

$a = array(1, 44, 5, 6, 68, 9);
$res = 0;

foreach($a as $v) {
if($res < $v)
$res = $v;
}

echo $res;

?>

Выход:

68

В вашем примере вы только что сделали 2 вещи неправильно:

$a = array(1, 44, 5, 6, 68, 9);
$res = $a[0];

for($i = 0; $i <= count($a); $i++) {
//^ equal is too much gives you an offset!

if($res > $a[$i]){
//^ Wrong condition change it to <
$res=$a[$i];
}

}

РЕДАКТИРОВАТЬ:

С циклом for:

$a = array(1, 44, 5, 6, 68, 9);
$res = 0;

for($count = 0; $count < count($a); $count++) {

if($res < $a[$count])
$res = $a[$count];

}
4

Другие решения

Как насчет:

<?php
$res = max(array(1,44,5,6,68,9));

(документы)

3

Вы должны только удалить = из $ я<= считать так должно быть

<?php $a =array(1,44,5,6,68,9);
$res=$a[0];
for($i=0;$i<count($a);$i++){
if($res<$a[$i]){
$res=$a[$i];
}
}
?>

проблема в том, что ваш цикл идет после индекса вашего массива, а условие меняется на обратное.

1

max() Функция сделает то, что вам нужно сделать:

$res = max($a);

Подробнее Вот.

0
По вопросам рекламы [email protected]