1

私はPHPを初めて使用するので、本当にあなたの助けが必要です。次の形式のCSVファイル(* "Test.csv"という名前)があります。

"ID";"Nom de famille";"Prénom";"Age";"Téléphone mobile";"Téléphone";"Téléphone 2";"Fax";"Adresse de messagerie";"Commentaires"

特定のCSVファイルの行数をカウントし、各行の「Age」フィールドを配列に格納できるPHPコードが必要です。

4

5 に答える 5

5

CSVデータには値のに改行が含まれている可能性があるため、私が考えることができる最も堅牢なソリューションは、ファイルをレコードごとに読み取ることです。

$ages = array(); $records = 0;
$f = fopen('data.csv', 'rt');
while (($row = fgetcsv($f, 4096, ';')) !== false) {
    // skip first record and empty ones
    if ($records > 0 && isset($row[3])) {
        $ages[] = $row[3]; // age is in fourth column
    }
    ++$records;
}
fclose($f);

// * $ages contains an array of all ages
// * $records contains the number of csv data records in the file 
//   which is not necessarily the same as lines
// * count($ages) contains the number of non-empty records)
于 2013-01-18T04:15:36.753 に答える
1

ファイル機能はあなただけのものです。

この関数は、ファイル全体を配列に読み込みます。

必要なコードは次のとおりです。

<?php

$ageArray = array();
$inputFile = 'filename.csv';

$lines = file($inputFile); 
echo count($lines);
// count($lines) will give you total number of lines

// Loop through our array
foreach ($lines as $line_num => $line) {
    $ageArray[] = $line[3]; //'Age';
}

//Here is the o/p
print_r($ageArray);

?>

注:fopenラッパーが有効になっている場合は、この関数でリモートURLをファイル名として使用できます。ただし、ローカルファイルを使用することをお勧めします。

ハッピーPHPコーディング。

于 2013-01-18T04:21:15.667 に答える
0

Windowsの場合:

$count = substr_count(file_get_contents($filename), "\r\n");

Nix:

$count = substr_count(file_get_contents($filename), "\n");

この投稿から、単一のフィールドを配列に抽出する方法に関する情報を見つけることができます。

csv列を配列に入れる

于 2013-01-18T04:08:15.007 に答える
0

シンプルにしておきます。

function age($line)
{
    $cols = explode(",",$line);
    return $cols[3];
}

$lines = explode("\n",file_get_contents($filename));
$count = count($lines);
$ages = array_map("age",$lines);
于 2013-01-18T04:18:18.307 に答える
0
$fname='1.csv';
$line_cnt=0;
$age_arr=array();
if($fh=fopen($fname,'r'))
{
  while(!feof($fh))
  {
     $str=fgets($fh);
     if($str!='')
     {
        $line_cnt++;
        $a=explode(';',$str);
        $age_arr[]=$a[3];
     }
  }
  fclose($fh);
}

echo 'line_cnt='.$line_cnt.'\n';
print_r($age_arr);
于 2013-01-18T04:19:41.173 に答える