누군가 정규식으로 정렬하는 데이터 세트를 갖도록 도와 줄 수 있습니까? 올바른 결과를 가지고 있지만 fputcsv를 호출하려고 할 때 스크립트는 IP가 아닌 헤더가없는 필드 만 인쇄하므로 인쇄해야합니다.중첩 배열의 PHP fputcsv입니다.
21940504 21940524
10145712
10139358 10139458
10164438
내가 넣어하는 방법을 알아낼 필요가 : 여기
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입니다 : 이것은 내 데이터가 결과
<?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);
: 여기
내 코드입니다 첫 번째 열의 IP는 다음과 같습니다. 내가 제대로 브래킷을 계산하는 경우 가while (($line = fgets($handle)) !== false) {
....
$customer = $output[2];
....
} //end while loop, with $customer defined in it,
foreach ($customers as $customers[$customer]) //<-- whats this about
{
fputcsv($file, $customers[$customer]); //<-- this also makes no sense
}
$customer
의 값이 while 루프의 마지막 반복에서있을 것입니다 :
감사합니다. 지금 일하고 있습니다 – Simon
물론, 당신이 필요로했던 것을 정리해 내서 기뻤습니다. – ArtisticPhoenix