>  기사  >  백엔드 개발  >  PHP 순회 배열의 여러 사용법 요약

PHP 순회 배열의 여러 사용법 요약

伊谢尔伦
伊谢尔伦원래의
2017-07-08 11:37:561046검색

PHP에서 가장 유연한 것은 배열입니다. 다음은 필요에 따라 선택할 수 있는 배열 탐색 방법입니다.

오늘 친구가 나에게 phptraversing arrays메소드에 대해 질문했고 나는 그녀에게 몇 가지를 말해주었습니다. 그런데 요약이 불완전하면 지적해 주세요. 먼저
foreach

()

foreach()는 데이터를 탐색하는 가장 간단하고 효과적인 방법입니다. 정렬.

<?php 
    $urls= array(&#39;aaa&#39;,&#39;bbb&#39;,&#39;ccc&#39;,&#39;ddd&#39;); 
    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(&#39;aaa&#39;,&#39;bbb&#39;,&#39;ccc&#39;,&#39;ddd&#39;); 
    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()는 for를 사용하여 배열을 순회합니다.

<?php 
    $urls= array(&#39;aaa&#39;,&#39;bbb&#39;,&#39;ccc&#39;,&#39;ddd&#39;); 
    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입니다. 먼저 50,000개의 첨자가 있는

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 &#39;Used time of for:&#39;.round($time_used, 7).&#39;(s)<br /><br />&#39;; 
  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 &#39;Used time of while:&#39;.round($time_used, 7).&#39;(s)<br /><br />&#39;; 
  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 &#39;Used time of foreach:&#39;.round($time_used, 7).&#39;(s)<br /><br />&#39;; 
  ?>

테스트 결과:
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은 배열의 내부 인덱스를 이동하여 작동합니다. 일반적으로 foreach보다 while이 더 빠르다고 여겨집니다. 먼저 복사가 시작될 때 배열을 이동하고 while은 내부 포인터를 직접 이동하지만 결과는 정반대입니다. 그 이유는 foreach는 PHP의 내부 구현인 반면 while은 일반적인 루프 구조이기 때문입니다. 따라서 일반 애플리케이션에서는 foreach가 간단하고 효율적입니다. PHP5에서는 foreach가 클래스 속성을 순회할 수도 있습니다.

위 내용은 PHP 순회 배열의 여러 사용법 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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