큰 파일 핸들러를 구현해야하는 PHP 용 애플리케이션을 개발 중입니다. 파일 읽기 및 쓰기는 문제가되지 않지만 파일의 내용을 확인하는 것은 문제가됩니다.큰 배열을 처리하는 방법은 무엇입니까?
변수가 이미 동일한 문서에서 사용되었는지 확인하는 재귀 함수를 만들었습니다.
private function val_id($id){
if(!isset($this->id)){
$this->id = array();
}
if(in_array($id, $this->id)){
return $this->val_id($id+1);
}else{
$this->id[] = $id;
return $id;
}
}
와 in_array ($ 아이디, $ this-> ID)는 FALSE를 반환
은 $ ID는 $ this-> ID와 유효 ID를 리턴한다 (모든 식별자를 포함 어레이)에 추가 될 것이다. 이 TRUE 반환하면, 그것은 (1) 우리는 300,000 이상에 대해 이야기하고 있기 때문에
는 시간을 기록 + 매개 변수 $ ID를 가진 동일한 기능을 반환 PHP는 큰 배열을 저장할 수하지 않을 것입니다. 이 배열이 너무 커지면 생성하는 문서에 줄을 쓰지 않는 것 같습니다. 그러나 그런 오류 메시지는받지 못합니다.
생성 된 문서가 여러 행을 가진 SQL 파일이므로 다른 솔루션을 삽입하면 ID가 이미 데이터베이스에 있는지 확인할 수 있습니다. MySQL이 이러한 예외를 잡아서 id에 1을 추가하여 이러한 항목을 다시 시도 할 수 있습니까? 방법?
이 문제를 어떻게 해결할 필요가 있다고 생각하십니까?
종류와 관련,
WOUTER
PHP가 배열을 저장하는 더 압축 된 방법을 찾으려면 [PHP Judy] (http://php.net/Judy)를 확인하십시오. 결과는 공간적으로 인상적이지만 일반적인 배열 구현 (그것을 채우기 위해)보다 두 배 느린 것처럼 보입니다. –
코드를 좀 더 보여줄 수 있습니까? 파일을 쓰고있는 곳은 어디입니까? 여기서하려고하는 것을 말하기는 어렵습니다. mysql의 auto_increment를 사용하여 여러분이하려는 일을 해결할 수 있다는 느낌이 들었습니다. – sgroves
방금 읽은 것, 어쩌면 도움이 될 수 있습니다 : http://blog.webspecies.co.uk/2011-05-31/lazy-evaluation-with-php.html –