foreach
(
$arrayas$key
=>
$value
){
echo
$array
[
$key
]=
$value
.'...';
}
while
(list(
$key
)=each(
$array
)){
$array
[
$key
]=
$array
[
$key
].'...';
}
总结:通常认为,
foreach
涉及到值复制,一定会比
while
慢,但实际上,如果仅仅是在
循环里进行数组的读操作,那么
foreach
是很快的,这是因为 PHP
“
采用的复制机制是 引
”
用复制,写时拷贝 ,这样看来,
foreach
的高效读操作就不难理解了。另外,既然
foreach
不适合处理数组写操作,那么我们可以得出一个结论,多数情况下,类似
foreach
(
$arrayas$key
=>
$value
)形式的代码都应该被替换成
while
(list(
$key
)=each(
$array
))
。
这些技巧产生的速度差异在小项目里可能并不明显,但是在类似框架这样的大项目中,
一次请求动辄便会涉及到几百几千几万次数组循环操作,差异就会明显放大。
有关 php 数组及循环的小例子,包括二维数组、杨辉三角、获取参数、矩形对角线求和,有
需要的朋友建议看看
代码如下: