我需要读取一个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为数组,布尔值为
所以它告诉我刚创建的数组实际上是一个布尔值。
我希望你能透露一下为什么会出现这种情况
注意:我不是要求你为我做我的工作。我只想点几个指示让我开始朝着正确的方向前进。
答案 0 :(得分:0)
您可以输入' make'的值。使用array_column函数将列转换为单独的数组,如下所示:
$allMakes = array_column($towedCars, 'make');
然后在其上运行array_unique,这将消除所有重复项:
$uniqueMakes = array_unique($allMakes);