PHP在CSV列中查找唯一数据

时间:2017-11-18 21:10:13

标签: php

我正在尝试收集'制作'中的所有独特内容。 csv的columnn。基本上,它是拖车列表中的所有制造商。有一个' Make' CSV中的字段。

我尝试了以下解决方案:

$towFileString = file_get_contents("the link would go here");
file_put_contents('tow-data.csv', $towFileString);

$csvArray = array_map('str_getcsv', file('tow-data.csv'));

//echo count($csvArray);

$allMakes = array_column($csvArray, 'Make');
$uniqueMakes = array_unique($allMakes);

echo count($uniqueMakes);

我可以看到$ csvArray正在创建和填充(它收集了数千个项目)但是当我尝试回显$ uniqueMakes的计数时,我得到0。

我在哪里迷路?

1 个答案:

答案 0 :(得分:0)

<?php

$csv =<<<CSV
manufacturer,model
ford,escort
delorean,dmc-12
ford,capri
vw,beetle
CSV;

$csv     = array_map('str_getcsv', explode("\n",$csv));
$headers = array_shift($csv);

$manufacturer_idx = array_search('manufacturer', $headers);
$manufacturers    = [];
foreach($csv as $v) {
    $manufacturers[] = $v[$manufacturer_idx];
}

$manufacturers = array_unique($manufacturers);
sort($manufacturers);
var_export($manufacturers);

输出:

array (
0 => 'delorean',
1 => 'ford',
2 => 'vw',
)