我正在从文件中阅读数据并显示数组,如下面的代码:
if (($fp = fopen("test.txt", "r")) !== FALSE) {
$count = 0;
while(($row = fgetcsv($fp)) !== FALSE)
{
$row = explode("|",$row[0]);
foreach($row as &$el)
{
$el=trim($el);
}
$count++;
$tot = array_sum(array_column($row,2));
echo "<pre>";print_r($row);
if($count>3)
{
break;
}
echo "Coumt :".$tot;
}
echo "Coumt :".$tot;
fclose($fp);
}
测试.txt文件数据:
005-4410040 |BIRM| 0
005-4410040 |CHI | 450
005-4410040 |CIN | 144
我想要数组的第二个索引的总和,它意味着单独变量中的320 + 450 + 144
。
我怎么才能做到这一点?我已经尝试了array_column()
,但它不工作。
更新:我尝试过的:
$sum = array_sum(array_column($row,$row['2']));
2条答案
按热度按时间fivyi3re1#
您应该能够像这样使用
array_column()
和array_sum()
来实现这一点结果
向问题添加代码后:
您没有正确理解
fgetcsv()
,它一次只获取一行。因此,每次调用fgetcsv都会从您分解为$row的文件中返回一行您所需要做的就是在处理文件的各行时累加
$row[2]
。nszi6y052#
你叫错顺序了