我有一個 CSV 檔案。它包含 3 列,我只想計算第 3 列的總行數。我嘗試了一個代碼,但它顯示了整個 CSV 檔案的行數。
$record = file('filename.csv', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$total_record = count($record);
echo $total_record; // output 6
根據下圖,我只想計算 Ph_no 列。請幫幫我

uj5u.com熱心網友回復:
您可以使用array_map()對str_getcsv()由 回傳的陣列中的每個元素(行)運行回呼file()。
$arr = array_map('str_getcsv', file('./filename.csv'));
結果 ( $arr) 看起來像這樣:
Array
(
[0] => Array
(
[0] => First_Name
[1] => Last_name
[2] => Ph_no
)
[1] => Array
(
[0] => ABC
[1] => AB
[2] => 1234567890
)
... etc.
然后您可以計算電話號碼的數量:
$phNo = array_column($arr, 2);
$phNoCount = count($phNo) -1 ; // subtract the header
echo 'Ph_no count: ' . $phNoCount;
uj5u.com熱心網友回復:
$file = fopen('myCSVFile.csv', 'r');
$count = 0;
while (($line = fgetcsv($file)) !== FALSE) {
$num = count($line);
for ($i=0; $i < $num; $i ) {
if(!empty($line[2]) {
$count ;
}
}
}
fclose($file);
echo $count;
uj5u.com熱心網友回復:
使用該fgetcsv()功能非常簡單
$tot = 0;
if (($f = fopen("filename.csv", "r")) !== FALSE) {
// read and ignore first line, titles
fgetcsv($f, 1000, ",");
while (($line = fgetcsv($f, 1000, ",")) !== FALSE) {
if ( $line[2] !== '' ) {
$tot = $line[2]; // accumulate column 3
}
}
}
fclose($f);
echo $tot;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/378948.html
