【发布时间】:2012-03-02 06:51:07
【问题描述】:
我有一个源数组,在 foreach() 循环中,将根据源数组的某些字段生成一个新数组。最后该函数将返回新数组。
function get_role_info() {
$source_array = array(
'role1' => array(
'name' => 'Eric',
'age' => '30',
'gender' => 'male'
),
'role2' => array(
'name' => 'Emily',
'age' => '27',
'gender' => 'female'
)
......
);
foreach ($source_array as $role_name => $role) {
$new_info= array();
$new_info['role-name'] = $role_name;
$new_storage['user-name'] = $role['name'];
...... //other filters
$newinfo[] = $new_info;
}
return $newinfo;
}
这个函数的调用会导致CPU使用率增加很多。 如果我将 foreach 更改为 for 循环
for ($i=0; $i<$cnt; $i++) {
....... // same logic to filter fields
}
CPU 利用率将下降... 我不确定这两个有什么区别? 如果我只是打印新数组而不返回它,CPU 也不会变高。 有人对此有所了解吗?谢谢。
【问题讨论】:
标签: php performance foreach