PHP 배열 을 옮 겨 다 니 는 세 가지 방법 및 효율 비교 분석
오늘 어떤 친구 가 나 에 게 phop 이 배열 을 옮 겨 다 니 는 방법 에 대해 몇 가 지 를 알려 주 었 다.가 는 김 에 문장 을 써 서 정리 해 보 세 요.만약 총 결 이 완전 하지 않 으 면 여러분 께 지적 해 주세요.
첫째,foreach()
foreach()는 배열 의 데 이 터 를 옮 겨 다 니 는 가장 간단 하고 효과 적 인 방법 이다.
<?php
$urls= array('aaa','bbb','ccc','ddd');
foreach ($urls as $url){
echo "This Site url is $url! <br />";
}
?>
결과 보이 기:
This Site url is aaa
This Site url is bbb
This Site url is ccc
This Site url is ddd
둘째,while()와 list(),each()가 함께 사용 합 니 다.
<?php
$urls= array('aaa','bbb','ccc','ddd');
while(list($key,$val)= each($urls)) {
echo "This Site url is $val.<br />";
}
?>
결과 보이 기:
This Site url is aaa
This Site url is bbb
This Site url is ccc
This Site url is ddd
세 번 째,for()는 배열 을 옮 겨 다 니 기 위해 사용 합 니 다.
<?php
$urls= array('aaa','bbb','ccc','ddd');
for ($i= 0;$i< count($urls); $i++){
$str= $urls[$i];
echo "This Site url is $str.<br />";
}
?>
결과 보이 기:
This Site url is aaa
This Site url is bbb
This Site url is ccc
This Site url is ddd
어떤 사람 도 이 몇 가지 배열 을 옮 겨 다 니 는 방법 중 어느 것 이 더 빠 른 지 물 어보 고 있 습 니 다.다음은 간단 한 테스트 를 하면 알 수 있 습 니 다.세 가지 배열 을 옮 겨 다 니 는 속 도 를 측정 해 보 겠 습 니 다.
일반적인 상황 에서 한 배열 을 옮 겨 다 니 는 세 가지 방법 이 있 습 니 다.for,while,foreach.그 중에서 가장 간단 하고 편리 한 것 은 foreach 이다.다음은 50000 개의 아래 표 시 된 1 차원 배열 을 함께 옮 겨 다 니 는 데 걸 리 는 시간 을 테스트 해 보 자.
<?php
$arr= array();
for($i= 0; $i< 50000; $i++){
$arr[]= $i*rand(1000,9999);
}
function GetRunTime()
{
list($usec,$sec)=explode(" ",microtime());
return ((float)$usec+(float)$sec);
}
######################################
$time_start= GetRunTime();
for($i= 0; $i< count($arr); $i++){
$str= $arr[$i];
}
$time_end= GetRunTime();
$time_used= $time_end- $time_start;
echo 'Used time of for:'.round($time_used, 7).'(s)<br /><br />';
unset($str, $time_start, $time_end, $time_used);
######################################
$time_start= GetRunTime();
while(list($key, $val)= each($arr)){
$str= $val;
}
$time_end= GetRunTime();
$time_used= $time_end- $time_start;
echo 'Used time of while:'.round($time_used, 7).'(s)<br /><br />';
unset($str, $key, $val, $time_start, $time_end, $time_used);
######################################
$time_start= GetRunTime();
foreach($arr as$key=> $val){
$str= $val;
}
$time_end= GetRunTime();
$time_used= $time_end- $time_start;
echo 'Used time of foreach:'.round($time_used, 7).'(s)<br /><br />';
?>
테스트 결과:
Used time of for:0.0228429(s)
Used time of while:0.0544658(s)
Used time of foreach:0.0085628(s)
반복 적 인 테스트 를 통 해 같은 배열 을 옮 겨 다 니 는 것 에 대해 foreach 속도 가 가장 빠 르 고 가장 느 린 것 은 while 인 것 으로 나 타 났 다.원리 적 으로 볼 때 foreach 는 배열 복사 본 을 조작 하 는 것(배열 복사)이 고,while 는 모 바 일 배열 내부 지 표를 통 해 조작 하 는 것 이다.일반적으로 논리 적 으로 while 는 foreach 보다 빨 라 야 한다 고 생각한다.(foreach 가 실행 을 시작 할 때 먼저 배열 을 복사 하고 while 은 내부 지 표를 직접 이동 하기 때문이다.)하지만 결 과 는 정반 대 였 다.왜냐하면 foreach 는 PHP 내부 에서 이 루어 지 는 것 이 고 while 는 통용 되 는 순환 구조 이기 때문이다.그래서 일반적인 응용 에서 foreach 는 간단 하고 효율 이 높다.PHP 5 에서 foreach 는 클래스 의 속성 을 옮 겨 다 닐 수 있 습 니 다.본 논문 에서 말 한 것 이 여러분 의 phop 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.