我相信我明白你想要什么,而且很简单。首先,您需要将文件读入 php 数组。这可以通过以下方式完成:
$filedata = file($filename, FILE_IGNORE_NEW_LINES);
现在使用 foreach() 循环、分解和标准数组分配来构建您想要的数组。您的搜索要求不清楚,但在此示例中,我将关联的数组元素制作成一个数组,该数组也是一个关联数组,键为 'id' 和 'num'。
当您创建新数组时,您可以计算总和,如图所示。
<?php
$filedata = array('Abid-01-80', 'Sakib-02-76');
$lineArray = array();
$numTotal = 0;
foreach ($filedata as $line) {
$values = explode('-', $line);
$numTotal += $values[2];
$lineArray[$values[0]] = array('id' => $values[1], 'num' => $values[2]);
}
echo "Total: $numTotal\n\n";
var_dump($lineArray);
你可以see this code demonstrated here
更新回复:
请记住,通知不是错误。他们通知您您的代码可能更干净,但通常在生产中被抑制。
未定义变量通知即将到来,因为您正在使用:
$var += $var 之前没有初始化 $var。请注意,您在此实践中不一致。例如,您初始化了 $numTotal,所以当您使用相同的方法来增加它时,您没有收到通知。
只需在$numTotal = 0下方添加:
$count = 0;
$countEighty = 0;
您的其他通知很可能是由于您输入中的空白行或字符串不符合预期的模式而发生的。执行explode 时,它不会返回一个包含3 个元素的数组,因此当您尝试引用$values = explode('-', $line); 时,您需要在处理它之前确保$line 不是空字符串。您还可以添加一个健全性检查,例如:
enter code hereif (count($values) === 3) { // 可以处理