私はソース配列を持っていますが、foreach()ループではソース配列のいくつかのフィールドに基づいて新しい配列が生成されます。最後に関数は新しい配列を返します。PHP foreachは配列を生成し、それを返すとCPU使用率が増加します
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使用率が大幅に増加します。私はループ
for ($i=0; $i<$cnt; $i++) {
....... // same logic to filter fields
}
のためにforeachのを変更した場合 CPU使用率が下がるだろう...私はこれらの2の違いを何かわからない ? 新しい配列を出力して返していないだけでは、CPUの高さも上がらないでしょう。 誰かがそれについて何か手掛かりを持っていますか?どうも。