Php 将几行内的值保存到数组中

Php 将几行内的值保存到数组中,php,Php,我正在做一个小php脚本,我有一个表单,可以在txt上保存一些东西 我需要读取所有行,并获取每行的最后一个值,然后将它们全部放入一个数组中 我想我可以用explode函数来实现,但我不知道如何实现它几次,以求和所有值并得到平均值 $nombre=$_POST['nombre']; $edad=$_POST['edad']; $email=$_POST['email']; $importe=$_POST['importe']; $nombre=$_POST[

我正在做一个小php脚本,我有一个表单,可以在txt上保存一些东西

我需要读取所有行,并获取每行的最后一个值,然后将它们全部放入一个数组中

我想我可以用explode函数来实现,但我不知道如何实现它几次,以求和所有值并得到平均值

    $nombre=$_POST['nombre'];
    $edad=$_POST['edad'];
    $email=$_POST['email'];
    $importe=$_POST['importe'];
    $nombre=$_POST['nombre'];


//this part writes each value of the form to a txt file separated by an " | "
// this is where I need help. I have to show the sum of all the $importe values in all of the lines in the txt
//

$miarchivo=fopen("resultados.txt","a");
    if(!($miarchivo))
    {
    print("Imposible abrir archivo");
    exit;
    }
    fputs($miarchivo,"    $nombre | $edad | $email | $importe \n" .PHP_EOL);
    fclose($miarchivo);
    //echo "<script>location.href='forma.php'</script>";


//This part only shows the values of the txt after the script ends
$miarchivo=fopen("resultados.txt","r");
    if
    (! ($miarchivo))
    {
        print("no hay resultados");
        exit;
    }
    while(!feof($miarchivo)){
        $linea=fgets($miarchivo,255);
        print"$linea<BR>";
    }
    fclose($miarchivo);

所以我可以对所有变量求和,得到其他变量的平均值

您需要通过添加这样的括号将
$linea[]
作为一个数组


而(!feof($miarchivo)){
$linea[]=fgets($miarchivo,255);
}

然后你可以像这样访问每一行

$linea[0]=“第1行”
$linea[1]=“第2行”

如果您需要打印当前行,就像您在while循环中所做的那样,您可以添加另一个临时变量并按如下方式打印

$linea[]=$currentLine=fgets($miarchivo,255);

打印(当前行)

导出到数组,然后获取最后一个值并存储在数组中。最后添加数组并获得平均结果。这是你的密码

while(!feof($miarchivo)){
    $linea=fgets($miarchivo,255);
    $quantityArray[] = end(explode('|',$linea));
}

$averageResult = array_sum($quantityArray)/count($quantityArray);

无需将值存储在数组中即可获得平均值。除非您需要对该阵列执行其他操作,否则这只是浪费内存。您可以在读取行时对
$import
值进行求和和和计数,然后在末尾计算这些值的平均值

$count = $sum = 0;
while (($linea = fgetcsv($miarchivo, 0, '|')) !== false) {
    $importe = trim($linea[3]);
    $count++;
    $sum += $importe;
}

if ($count) {  // check count to prevent division by zero
    $average = $sum / $count;
}

您正在尝试求和哪些表单值?很抱歉,我无法从脚本中分辨。所有脚本都会将多个值写入文本文件中的文本行,所有值都以|如此名称|年龄|电子邮件|数量分隔。假设我的文本文件中有几行类似的内容,现在我想读取每行的$quantity并将它们全部放入数组中,这样我就可以对它们进行求和。请在您的问题中添加澄清的详细信息,例如您在@cesarmedrano上面的评论中发布的内容这一行是什么
打印“$linea
,这样我就可以把它们相加,得到其他变量的平均值
$count = $sum = 0;
while (($linea = fgetcsv($miarchivo, 0, '|')) !== false) {
    $importe = trim($linea[3]);
    $count++;
    $sum += $importe;
}

if ($count) {  // check count to prevent division by zero
    $average = $sum / $count;
}