>  기사  >  php教程  >  PHP는 대규모 배열에서 임의의 작은 배열을 신속하게 가져옵니다.

PHP는 대규모 배열에서 임의의 작은 배열을 신속하게 가져옵니다.

大家讲道理
大家讲道理원래의
2016-11-11 09:45:291307검색

사용자가 무엇을 좋아하는지 추측하는 기능이 있습니다. 사용자는 그룹 변경을 클릭하여 추천 콘텐츠를 새로 고칠 수 있습니다.

먼저 데이터베이스를 쿼리하여 처음 1000개의 데이터를 가져온 다음 무작위로 4개를 제거합니다.

프로그램 작성을 마친 후 새로 고칠 때마다 실행 속도가 매우 느려지는 것을 발견했습니다.

코드는 다음과 같습니다.

$arr = range(1, 100000);
$start = time();
for($i = 0; $i < 100; $i ++){
    $key = mt_rand(0, 99999 - $i);
    $result[] = $arr[$key];
    unset($arr[$key]);
    sort($arr);
}
$end = time();
echo $end - $start;

위 작성 방법은 unset을 사용한 후 정렬해야 합니다.

설정을 해제하면 키 값만 삭제되고 키는 유지됩니다.

개선된 글쓰기는 다음과 같습니다.

$arr = range(1, 100000);
$start = time();
for($i = 0; $i < 100; $i ++){
    $key = mt_rand(0, 99999 - $i); 
    $result[] = array_splice($arr, $key, 1);
}
$end = time();
echo $end - $start;

효율이 3~4배 증가했습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.