php 수조가 백만 데이터에 대해 중복 데이터를 배제하는 실현 코드

만약 uid 목록을 얻게 된다면, 수량은 백만 줄 이상이며, 형식은 다음과 같다
 
10001000
10001001
10001002
......
10001000
......
10001111  
사실 php수조의 특성을 이용하여 무게를 배열하기 쉽다. php수조의 정의를 살펴보자. php수조의 수조는 실제로 질서정연하게 비치는 것이다.맵은values를keys에 연결하는 형식입니다.이 유형은 여러 방면에서 최적화되었기 때문에 이를 진정한 수조나 목록(벡터), 산목록(映射의 일종의 실현), 사전, 집합, 창고, 대기열과 더 많은 가능성으로 간주할 수 있다.그룹 요소의 값도 다른 그룹일 수 있습니다.트리 구조와 다차원 수조도 허용된다.php의 수조에서 키(keys)도 색인이라고 하는데 유일성을 가지고 우리는 이 특성을 이용하여 무게를 정할 수 있다. 예시 코드는 다음과 같다
 
<?php
// ,
$result = array();
// uid
$fp = fopen('test.txt', 'r');

while(!feof($fp))
{
$uid = fgets($fp);
$uid = trim($uid);
$uid = trim($uid, "\r");
$uid = trim($uid, "
");

if($uid == '')
{
continue;
}
// uid key
if(empty($result[$uid]))
{
$result[$uid] = 1;
}
}

fclose($fp);

//
$content = '';
foreach($result as $k => $v)
{
$content .= $k."
";
}
$fp = fopen('result.txt', 'w');
fwrite($fp, $content);
fclose($fp);
?>  
20여 줄의 코드를 사용하면 백만 이상의 데이터에 대해 무게를 정할 수 있고 효율도 좋고 매우 실용적이다.휴대전화 번호, 이메일도 이런 방식으로 무게를 정할 수 있다.그리고 이 방법은 두 파일의 무게를 정하는 작업에도 사용할 수 있습니다. 만약 두 개의 uid 목록 파일이 있다면, 형식은 위의 uid 목록과 같습니다. 예시 프로그램은 다음과 같습니다
 
<?php
// ,
$result = array();
// uid , $result_1
$fp = fopen('test_1.txt', 'r');
while(!feof($fp))
{
$uid = fgets($fp);
$uid = trim($uid);
$uid = trim($uid, "\r");
$uid = trim($uid, "
");
if($uid == '')
{
continue;
}
// uid key $result,
$result[$uid] = 1;
}
fclose($fp);
// uid ,
$fp = fopen('test_2.txt', 'r');
while(!feof($fp))
{
$uid = fgets($fp);
$uid = trim($uid);
$uid = trim($uid, "\r");
$uid = trim($uid, "
");
if($uid == '')
{
continue;
}
// uid key
if(empty($result[$uid]))
{
$result[$uid] = 1;
}
}
fclose($fp);
//$result , ,
?>
곰곰이 생각해 보면 수조의 이 특성을 이용하여 우리 업무 중의 더 많은 문제를 해결할 수 있다는 것을 발견하기 어렵지 않다.

좋은 웹페이지 즐겨찾기