Home >Backend Development >PHP Tutorial >Detailed introduction to PHP array loop operation_PHP tutorial

Detailed introduction to PHP array loop operation_PHP tutorial

WBOY
WBOYOriginal
2016-07-15 13:27:50854browse

PHP arrays are quite commonly used, so I studied the PHP array loop operation and shared it with you here. I hope it will be useful to everyone. PHP is basically an array language. We often need to perform a large number of PHP array loop operations. There are two main methods, one is foreach and the other is while. There has been debate on which one is better and which one is worse. Although I have been aware of this problem for a long time, I have always been Without going into details, the feeling of ignorance continues until now. In order to save some CPU time in the future, let’s summarize it below:

What is done in the loop is the array "read" operation, so foreach is faster than while, PHP array loop Operation Unformatted View Copy to Clipboard Print Code?

<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>

The array "writing" operation is performed in the loop, so while is faster than foreach:

Unformatted View Copy to Clipboard Board printing code?

<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>

Summary: It is generally believed that foreach involves value copying and will definitely be slower than while, but in fact, if it is just in When the array read operation is performed in a loop, foreach is very fast. This is because the copy mechanism used by PHP is "copy by reference, copy on write". From this point of view, the efficient read operation of foreach is not difficult to understand. In addition, since foreach is not suitable for processing array write operations, we can draw a conclusion that in most cases, code in the form of foreach($arrayas$key=>$value) should be replaced by while(list($key )=each($array)).

The speed difference produced by these techniques may not be obvious in small projects, but in large projects like frameworks, a single request will often involve hundreds, thousands, or tens of thousands of array loop operations. The difference is will be significantly enlarged.


www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/446501.htmlTechArticlePHP arrays are quite commonly used, so I studied the PHP array loop operation and shared it with you here. Here's a look, hope it's useful to everyone. PHP is basically an array language...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn