ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルで配列を走査する方法の概要

PHP_PHP チュートリアルで配列を走査する方法の概要

WBOY
WBOYオリジナル
2016-07-13 09:55:01771ブラウズ

配列を走査するための PHP メソッドのまとめ

今日、友人が配列を走査するための PHP メソッドについて質問したので、いくつか説明しました。ちなみにまとめ記事を書きますので、まとめが不完全な場合はご指摘ください

まずはforeach()

foreach() は、配列内のデータを走査するための最も単純かつ効果的な方法です。

?

1

2

3

4

5

6

$urls= array('aaa','bbb','ccc','ddd');

foreach ($urls を $url){

echo "このサイトの URL は $url です!
";

}

?>

表示結果:

?

1

2

3

4

このサイトのURLはaaaです

このサイトのURLはbbbです

このサイトのURLはcccです

このサイトのURLはdddです

第二に、while() は list() および each() と組み合わせて使用​​されます。

?

1

2

3

4

5

6

$urls= array('aaa','bbb','ccc','ddd');

while(list($key,$val)= each($urls)) {

echo "このサイトの URL は $val です。
";

}

?>

表示結果:

?

1

2

3

4

このサイトのURLはaaaです

このサイトのURLはbbbです

このサイトのURLはcccです

このサイトのURLはdddです

3 番目に、for() は for を使用して配列を走査します

?

1

2

3

4

5

6

7

$urls= array('aaa','bbb','ccc','ddd');

for ($i= 0;$i

$str= $urls[$i];

echo "このサイトの URL は $str.
";

}

?>

表示結果:

?

1

2

3

4

このサイトのURLはaaaです

このサイトのURLはbbbです

このサイトのURLはcccです

このサイトのURLはdddです

配列を走査するこれらの方法のどちらが速いか尋ねられることもあります。簡単なテストをしてみましょう。そうすれば理解できるでしょう。

============ 配列を移動する 3 つの速度をテストしてみましょう ===========

一般に、配列を走査するには、for、while、foreach の 3 つのメソッドがあります。その中で最もシンプルで便利なのは foreach です。まず、50,000 個の添字を持つ 1 次元配列を走査するのにかかる時間をテストしてみましょう。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

$arr= 配列();

for($i= 0; $i<50000; $i++){

$arr[]= $i*rand(1000,9999);

}

関数 GetRunTime()

{

list($usec,$sec)=explode(" ",microtime());

return ((float)$usec+(float)$sec);

}

####################################

$time_start= GetRunTime();

for($i= 0; $i

$str= $arr[$i];

}

$time_end= GetRunTime();

$time_used= $time_end- $time_start;

echo '使用時間:'.round($time_used, 7).'(s)

';

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 'その間の使用時間:'.round($time_used, 7).'(s)

';

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 'foreach の使用時間:'.round($time_used, 7).'(s)

';

?>

テスト結果:

?

テストを繰り返した結果、同じ配列を走査する場合、foreach が最も速く、while が最も遅いことがわかりました。原理的な観点から見ると、foreach は (配列をコピーすることによって) 配列のコピーを操作しますが、while は配列の内部インデックスを移動することによって操作します (foreach のため)。実行が開始されると配列がコピーされ、while は内部ポインタを直接移動します) が、結果はまったく逆になります。その理由は、foreach が PHP の内部実装であるのに対し、while は一般的なループ構造であるためです。したがって、一般的なアプリケーションでは、foreach はシンプルで効率的です。 PHP5 では、foreach はクラスの属性をトラバースすることもできます。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/993431.html技術記事配列を走査するための PHP メソッドの概要 今日、友人が配列を走査するための PHP メソッドについて質問したので、いくつか説明しました。ちなみに、まとめ記事を書きますので、まとめが不十分でしたらご指摘ください…
1

2

3

使用時間:0.0228429(s)

その間の使用時間:0.0544658(s)

foreachの使用時間:0.0085628(s)

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。