【发布时间】:2017-10-29 10:30:47
【问题描述】:
谁能帮我,我有一组数据,我正在通过正则表达式整理出来。我有正确的结果,但是当我尝试调用 fputcsv 时,脚本只打印没有标题的字段,即 IP 并且也应该打印。
这是我的代码:
<?php
$handle = fopen("data2.txt", "r");
if (!$handle) {
exit;
}
$customers = array();
while (($line = fgets($handle)) !== false) {
if(preg_match('/-([0-9]*)-pdt.html.*rd:(.*)\|X/i',$line,$output)){
$product = $output[1];
$customer = $output[2];
if(!isset($customers[$customer])){
$customers[$customer] = array($product);
} else {
if (!in_array($product, $customers[$customer])){
$customers[$customer][] = $product;
}
}
}
}
$file = fopen('file.csv', 'w+');
foreach ($customers as $customers[$customer])
{
fputcsv($file, $customers[$customer]);
}
var_dump ($customers);
fclose($handle);
这是我的数据结果:
array (size=10)
'164.38.32.100' =>
array (size=2)
0 => string '21940504' (length=8)
1 => string '21940524' (length=8)
'86.11.76.246' =>
array (size=1)
0 => string '10145712' (length=8)
'185.31.96.130' =>
array (size=2)
0 => string '10139358' (length=8)
1 => string '10139458' (length=8)
'2.126.213.238' =>
array (size=1)
0 => string '10164438' (length=8)
这里是 csv:
21940504 21940524
10145712
10139358 10139458
10164438
我需要弄清楚如何将 IP 放在第一列,如下所示:
164.38.32.100 21940504 21940524
【问题讨论】: