Здравствуйте, подскажите пожалуйста вот у меня есть функция которая делает некоторые расчёты, и дело в том что функция должна заполнить массив $array_col8 элементами которые меньше $ArrayMpe. Вот собственно мой код:
function table1ColMassDopGir1($D,$MAX,$E,$BoolED,$array_arg1,$array_arg2,$ArrayMpe,$LASTYELLOW,$arrayTemp) {
$array_col4 = array(); //Ячейка Масса дополнительных гирь ∆L, г
$array_col6 = array(); //Ячейка Погрешность Е, г
$array_col8 = array(); //Ячейка Скорректированная погрешность Ес, г
$ch = 0;
while($ch == 0) {
for($i = 0; $i < 1; $i++) { //Цикл который крутиться один раз
$array_col4[$i] = IndexResult($arrayTemp);
$array_col6[$i] = (((0.5 * $D) + $array_arg2[$i]) - $array_col4[$i]) - $array_arg1[$i];
$Temp = $array_col6[$i] - $LASTYELLOW;
if(abs($Temp) < $ArrayMpe[$i]) {
$array_col8[$i] = $Temp;
$ch = 1;
}
else {
$ch = 0;
}
}
}
return $ArrayTable1 = array($array_col4,$array_col6,$array_col8,$ch);
}
Здесь так же есть функция IndexResult которая получает случайным образом значений из массива, массив состоит из 11 элементов, и затем то значение которое мы взяли, удаляем из массива. Это случайное значение просто участвует в расчёте.
function IndexResult($arr) {
$index = array_rand($arr); //Рандомим индекс
$tempElement = $arr[$index]; //Получаем элемент из массива
unset($arr[$index]); //Удаляем элемент из массива
$arr = array_values($arr); //Переиндексируем
return $tempElement; //Возвращаем
}
Проблема в том что когда я добавляю цикл while который должен все повторить заново весь расчёт, если элемент не меньше ArrayMpe, иногда вылетает вот такая ошибка:
Fatal error: Maximum execution time of 60 seconds exceeded in /var/www/u0421090/public_html/m-tech.avm-t.ru/sites/all/modules/webformizi/webformizi.module on line 544. Подскажите пожалуйста что я тут делаю не так? Заранее благодарю за ответ.