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