foreach operates on a copy of the array (by copying the array), while while operates by moving the internal index of the array. Generally speaking, it is believed that while should be faster than foreach (because foreach first copies the array when it starts executing, and while ), but the result is just the opposite.
The array "reading" operation is performed in the loop, so foreach is faster than while:
Copy the codeThe code is as follows:
foreach ($array as $value) {
echo $value;
}
while (list($key) = each($array)) {
echo $array[$key];
}
The array "writing" operation is performed in the loop, so while is faster than foreach:
Copy the codeThe code is as follows:
foreach ($array as $key => $value) {
echo $array[$key] = $value . '...';
}
while (list( $key) = each($array)) {
$array[$key] = $array[$key] . '...';
}
Summary: It is generally believed that foreach involves value copying, and it will definitely It is slower than while, but in fact, if you only read the array in a loop, then foreach is very fast. This is because the copy mechanism used by PHP is "reference counting, copy on write", that is to say, Even if a variable is copied in PHP, the initial form is still fundamentally in the form of a reference. Only when the content of the variable changes, the real copy will occur. The reason for doing this is to save memory consumption. purpose, and also improves the efficiency of
copying. 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. In most cases, code that performs array write operations in the form of foreach ($array as $key => $value) should be Replace with 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 often involves hundreds, thousands, or tens of millions of array loop operations, and the difference will be significantly magnified.
The above introduces the performance comparison of torrentkitty search php foreach and while, including the content of torrentkitty search. I hope it will be helpful to friends who are interested in PHP tutorials.