php 7将来自csv列的数据放入集合中

时间:2017-11-18 19:36:04

标签: php data-structures php-7

我需要读取一个csv文件并将特定列中的所有数据放入一个Set中(以便消除重复)。我已经在这里提出了问题并且我看到了一些类似的数组答案,但我不熟悉php,从这些例子中推断出我的用例。

具体来说,我需要获取芝加哥市拖走的所有汽车的csv文件。然后我需要遍历'Make'列并获取所有品牌。我不想包含重复项,所以我认为一个Set(我理解php7支持)将是一个合适的数据结构。

我现在并不关心效率,更多的是简单,因为这是家庭作业的一部分。我可以选择手动浏览并选择制作,但认为这很容易。

我猜数组是好的,因为有人能够告诉我这两个功能。

[code]


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

$file = fopen('tow-data.csv', 'rb');
$csvArray = array();

while(!feof($file)){
    $csvArray = fgetcsv($file);
}

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

$uniqueMakes = array_unique($allMakes);

然而,当我运行程序时,PHP会告诉我: 警告:array_column()期望参数1为数组,布尔值为

所以它告诉我刚创建的数组实际上是一个布尔值。

我希望你能透露一下为什么会出现这种情况

注意:我不是要求你为我做我的工作。我只想点几个指示让我开始朝着正确的方向前进。

1 个答案:

答案 0 :(得分:0)

您可以输入' make'的值。使用array_column函数将列转换为单独的数组,如下所示:

$allMakes = array_column($towedCars, 'make');

然后在其上运行array_unique,这将消除所有重复项:

$uniqueMakes = array_unique($allMakes);