我正在构建一个基于CSV文件进行一些简单报告的小型应用程序,CSV文件的格式如下:
DATE+TIME,CLIENTNAME1,HAS REQUEST BLABLA1,UNIQUE ID
DATE+TIME,CLIENTNAME2,HAS REQUEST BLABLA2,UNIQUE ID
DATE+TIME,CLIENTNAME1,HAS REQUEST BLABLA1,UNIQUE ID
DATE+TIME,CLIENTNAME2,HAS REQUEST BLABLA2,UNIQUE ID
现在,我使用以下函数来处理此问题:
function GetClientNames(){
$file = "backend/AllAlarms.csv";
$lines = file($file);
arsort($lines);
foreach ($lines as $line_num => $line) {
$line_as_array = explode(",", $line);
echo '<li><a href="#"><i class="icon-pencil"></i>' . $line_as_array[1] . '</a></li>';
}
}
我试图仅检索Clientname值,但是我只想要唯一的值。
我尝试创建几种不同的方式来实现此目的,我知道我需要使用unique_array函数,但是我对如何使用此函数一无所知。
我已经试过了:
function GetClientNames(){
$file = "backend/AllAlarms.csv";
$lines = file($file);
arsort($lines);
foreach ($lines as $line_num => $line) {
$line_as_array = explode(",", $line);
$line_as_array[1] = unique_array($line_as_array[1]);
echo '<li><a href="#"><i class="icon-pencil"></i>' . $line_as_array[1] . '</a></li>';
}
}
但这给了我一个非常非常脏的结果,用100的空格代替了正确的数据。
我建议您fgetcsv()
在读取csv文件时使用该功能。在野生的csv文件中,通过朴素的explode()方法可以处理非常复杂的文件:
// this array will hold the results
$unique_ids = array();
// open the csv file for reading
$fd = fopen('t.csv', 'r');
// read the rows of the csv file, every row returned as an array
while ($row = fgetcsv($fd)) {
// change the 3 to the column you want
// using the keys of arrays to make final values unique since php
// arrays cant contain duplicate keys
$unique_ids[$row[3]] = true;
}
var_dump(array_keys($unique_ids));
您还可以收集值并array_unique()
在以后使用它们。您可能还希望将代码的“读入”和“写出”部分分开。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句