ホームページ >バックエンド開発 >PHPチュートリアル >PHP 配列ループ操作の詳細な紹介_PHP チュートリアル

PHP 配列ループ操作の詳細な紹介_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-15 13:27:50853ブラウズ

PHP 配列は非常に一般的に使用されるため、PHP 配列のループ操作を研究し、ここで共有しました。皆さんのお役に立てれば幸いです。 PHP は基本的に配列言語です。多くの場合、PHP の配列ループ操作を実行する必要があります。1 つは foreach で、もう 1 つは while です。どちらが優れているか、どちらが劣っているかについては議論があります。この問題は長い間、私はずっと抱えてきました。 詳細には触れませんが、今後の CPU 時間を節約するために、以下に要約します。

ループ内で行われる処理は次のとおりです。配列の「読み取り」操作は while よりも高速であり、PHP の配列ループ操作には表示する形式がありません。

<ol class="dp-xml">
<li class="alt"><span><span>foreach($arrayas$value){  </span></span></li>
<li class=""><span>echo$value;  </span></li>
<li class="alt"><span>}  </span></li>
<li class=""><span>while(list($key)=each($array)){  </span></li>
<li class="alt"><span>echo$array[$key];  </span></li>
<li class=""><span>}  </span></li>
<li class="alt"><span>foreach($arrayas$value){  </span></li>
<li class=""><span>echo$value;  </span></li>
<li class="alt"><span>}  </span></li>
<li class=""><span>while(list($key)=each($array)){  </span></li>
<li class="alt"><span>echo$array[$key];  </span></li>
<li class=""><span>} </span></li>
</ol>

配列の「書き込み」操作はループ内で実行されるため、while foreach よりも高速です:

クリップボードにコピーを表示し、形式なしでコードを印刷しますか?

<ol class="dp-xml">
<li class="alt"><span><span>foreach($arrayas$</span><span class="attribute">key</span><span>=</span><span class="tag">></span><span>$value){  </span></span></li>
<li class=""><span>echo$array[$key]=$value.'...';  </span></li>
<li class="alt"><span>}  </span></li>
<li class=""><span>while(list($key)=each($array)){  </span></li>
<li class="alt"><span>$array[$key]=$array[$key].'...';  </span></li>
<li class=""><span>}  </span></li>
<li class="alt">
<span>foreach($arrayas$</span><span class="attribute">key</span><span>=</span><span class="tag">></span><span>$value){  </span>
</li>
<li class=""><span>echo$array[$key]=$value.'...';  </span></li>
<li class="alt"><span>}  </span></li>
<li class=""><span>while(list($key)=each($array)){  </span></li>
<li class="alt"><span>$array[$key]=$array[$key].'...';  </span></li>
<li class=""><span>} </span></li>
</ol>

要約: 通常、foreach には値のコピーが含まれるため、while よりも確実に遅いと思いますが、実際には、ループで配列を読み取るだけで、foreach は非常に高速です。これは、PHP で使用されるコピー メカニズムが「書き込み時のコピー」であるためです。この観点から見ると、foreach の効率的な読み取り操作は難しくありません。理解すること。さらに、foreach は配列書き込み操作の処理には適していないため、ほとんどの場合、foreach($arrayas$key=>$value) の形式のコードは while(list($キー)=それぞれ($array))。

これらの手法によって生じる速度の違いは、小規模なプロジェクトでは明らかではないかもしれませんが、フレームワークのような大規模なプロジェクトでは、単一のリクエストに数百、数千、または数万の配列ループ操作が含まれることが多く、その差は大幅に拡大します。 。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446501.html技術記事 PHP 配列は非常に一般的に使用されるため、PHP 配列のループ操作を研究し、ここで共有しました。皆さんのお役に立てれば幸いです。 PHP は基本的に配列言語です...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。