如何用PHP获得最高的数组值?

时间:2016-03-23 22:42:57

标签: php arrays parsing csv

所以我想创建一个PHP应用程序,它将找到" Amount"的最高价值。在我的CSV文件中。

我的csv文件如下所示:

Day     Amount
1       10
2       17
3       22
4       48
5       12
...

首先,我做了这个,我把我的.csv文件解析成一个数组:

$fh = fopen($_FILES['file']['tmp_name'], 'r+');
$lines = array();
while( ($row = fgetcsv($fh, 8192)) !== FALSE ) {
    $lines[] = $row;
}

如果我想循环使用" Amount"我现在应该怎么做?值,我想将最高值保存到变量$x

提前谢谢大家!

3 个答案:

答案 0 :(得分:1)

您可以将内置的PHP max()用于一个维度数组,也可以循环检查自己http://php.net/manual/en/function.max.php

$x = max($lines);

$x = 0;
foreach($lines as $key=>$line){
    if($line[1]) >$x){
       $x = $line[1];
    }

} 

答案 1 :(得分:0)

创建另一个包含金额的数组,并获取其最大值。

$fh = fopen($_FILES['file']['tmp_name'], 'r+');
$lines = array();
$amounts = array();
while( ($row = fgetcsv($fh, 8192)) !== FALSE ) {
    $lines[] = $row;
    if (count($row) > 1 && is_numeric($row[1])) { // skip header
        $amounts = $row[1];
    }
}
$max_amount = max($amounts);

您还可以在读取线条时计算最大值。

$fh = fopen($_FILES['file']['tmp_name'], 'r+');
$lines = array();
$max_amount = 0;
while( ($row = fgetcsv($fh, 8192)) !== FALSE ) {
    $lines[] = $row;
    if (count($row) > 1 && is_numeric($row[1]) && $row[1] > $max_amount) { // skip header
        $max_amount = $row[1];
    }
}

答案 2 :(得分:-1)

使用PHP的最大值从数组中获取最大值!

max ( array $values )

您可以在以下位置阅读有关PHP max函数的更多信息: PHP max function