使用for循环从数组中获取最大数字

时间:2015-01-04 00:45:49

标签: php max

我想从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循环,如上所述。 Wat错了吗?

5 个答案:

答案 0 :(得分:4)

这应该适合你:

<?php

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

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

    echo $res;

?>

输出:

68

在你的例子中,你只做了两件事:

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

}

答案 1 :(得分:3)

怎么样:

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

docs

答案 2 :(得分:1)

你应该只从$ i&lt; = count中删除=所以它应该是

<?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];
  }
}
?>

问题在于你的循环在数组索引之后并且条件反转。

答案 3 :(得分:0)

max()函数将执行您需要执行的操作:

$res = max($a);

更多详情here

答案 4 :(得分:-1)

建议使用三元运算符

(条件)? (正确的陈述):(错误的陈述);

import time
from brokenaxes import brokenaxes
from datetime import timedelta, datetime

first_half_start= time.mktime(pd.to_datetime(date(2020, 2, 1)).timetuple())
first_half_end = time.mktime(pd.to_datetime(date(2020, 3, 1)).timetuple())
second_half_start = time.mktime(pd.to_datetime(date(2020, 5, 5)).timetuple())
second_half_end = time.mktime(pd.to_datetime(date(2020, 6, 7)).timetuple())

daily_plot_visit_skip_gap = plt.figure(figsize=(20,10))
bax = brokenaxes(xlims=((first_half_start, first_half_end), (second_half_start, second_half_end)),
                 hspace=100)

x = np.linspace(0, 1, 100)
x_date_in_int = df[df["treatment"]==0].sort_values("sessionstartdate")["sessionstartdate"]
for index, d in x_date_in_int.items():
    x_date_in_int[index] = time.mktime(d.timetuple())

bax.plot(x_date_in_int, df[df["treatment"]==0].sort_values("sessionstartdate")["visits"],label='control',color = 'grey')
bax.plot(x_date_in_int, df[df["treatment"]!=0].sort_values("sessionstartdate")["visits"],label='variation', color ='orange')
bax.legend(loc=3)
bax.set_xlabel('Date')
bax.set_ylabel('visits')