如何过滤PHP字符串以仅显示唯一结果?

时间:2014-07-23 19:33:02

标签: php loops csv foreach

我有一个CSV文件,我通过PHP输出到表。 CSV数据如下所示:

0072534,800:fixed:9.9900:0072534|6500:fixed:9.9900:0072538|2100:fixed:9.9900:0072537
0072538,800:fixed:9.9900:0072534|6500:fixed:9.9900:0072538|2100:fixed:9.9900:0072537
0072537,800:fixed:9.9900:0072534|6500:fixed:9.9900:0072538|2100:fixed:9.9900:0072537

我正在努力弄清楚如何让第二个CSV列只在第一个CSV列中显示与ID相关的数据。期望的结果是:

0072534, 800
0072538, 6500
0072537, 2100 

(第二列的第一部分是我所追求的数据,即第一列之前的数据':')

这是否有意义,有人可以提出解决方案吗?谢谢!!

1 个答案:

答案 0 :(得分:0)

您可以迭代每一行(但是您正在解析您的CSV文件),并进一步迭代每个CSV列 - 爆炸第二列。

这假设您希望在每个|字符后获取起始值,具体取决于行号。如果我误会,请告诉我 - 你的问题可以更清楚。

例如,像这样:

$count = 0;

$final = array();

foreach ($rows as $row) {

$columns = explode(",", $row);

$column2 = explode("|", $columns[1]);


$length = strpos($column2[$count], ':');
$column2 = substr($column2[$count], 0, $length);

$final[] = array($columns[0], $column2);

$count++;
}