PHP中数组的最大值

PHP中数组的最大值,php,arrays,Php,Arrays,为什么这不起作用?我的语法有什么问题吗?我想回显$row2['startShift']数组的最大值,但它不显示任何内容 $query2 = "SELECT startShift,endShift from seats where seatid=".$row['seatid']; $result2 = mysql_query($query2); while ($row2 = mysql_fetch_array($result2)){ $startShift = $row2['startS

为什么这不起作用?我的语法有什么问题吗?我想回显$row2['startShift']数组的最大值,但它不显示任何内容

$query2 = "SELECT startShift,endShift from seats where seatid=".$row['seatid'];
$result2 = mysql_query($query2);

while ($row2 = mysql_fetch_array($result2)){
    $startShift = $row2['startShift'];
    echo max($startShift);
}

通过在循环外保留一个单独的变量来计算最大值:

$maxStartShift = -INF;
while ($row2 = mysql_fetch_array($result2)){
    if ($row2['startShift'] > $maxStartShift) {
        $maxStartShift = $row2['startShift'];
    }
    echo $maxStartShift; // maximum until now
}
max()
函数返回其参数的最大值,因此
max(1,2)==2
max([1,2])==2
。就你而言:

echo max($row2['startShift']);

将只返回
$row2['startShift']
,因为这是传递给函数的所有参数的最大值。

要计算所有值吗?不,我只想显示最大值,所以我使用了max(),但它不回显任何内容。知道原因和方法吗?因为它在循环中,你可以直接从数据库中获取它,而不是从数据库中获取这一值的所有行
$row
是一行,所以
$row['startShift']
不是一个数组。为什么不在查询中粘贴
max
?为什么不让MySQL为您处理数据,而不是收回您不想要的结果?从seitid=@seat_id?的seats中选择MAX(startShift)?很抱歉,我只是一个PHP初学者,但我能问一个愚蠢的问题吗?什么是$maxStartShift=-INF?它的用途是什么?INF是表示“无穷大”的PHP常量“。如果您不给
$maxStartShift
一个非常低的初始值,则大于比较可能不起作用。我还要请您帮个忙。”。如果现在想要最小值,我该怎么做呢?@rez你做同样的事情,但反过来;从值
INF
开始,然后比较是否有任何值低于当前最小值。