我是PHP新手,嘗試使用fscanf讀取CSV文件以確定最小值和最大值。我的previous問題給出了我實際嘗試做什麼的概述。我正在嘗試使用fscanf查找CSV列的最大值和最小值,如下所示。PHP - 動態參數和動態變量
$file = fopen('<filename>', 'r');
$a = 0;
$b = 0;
$first = true;
while (fscanf($file, '%d%d', $a, $b)) {
if ($first)
{
$min = $b;
$max = $b;
$total = $b;
$count = 1;
$first = false;
}
else
{
$total += $b;
if ($b < $min) $min = $b;
if ($b > $max) $max = $b;
$count++;
}
}
$avg = $total/$count;
對於我的場景,我可以動態獲取CSV文件。我想根據列數使用上面的代碼。舉例來說,如果我有4列,我需要使用以前的代碼,
while (fscanf($file, '%d%d%d%d', $a, $b, $c, $d)) {
,並確定最大值和最小值的所有CSV文件的4列。如果它只有3列,我需要使用代碼:
while (fscanf($file, '%d%d%d', $a, $b, $c)) {
並確定CSV文件中所有3列的最大值和最小值。有沒有辦法在PHP中做到這一點?有人請引導我在正確的方向。
作爲一個快速提示,你可以看看PHP的fgetcsv功能 - http://php.net/manual/en/function.fgetcsv.php - 讀取每行到一個數組。這可能會有幫助,因爲您可以使用數組運算功能,如max - http://php.net/manual/en/function.max.php - 和min。 – mszaro