Упростить код на PHP

181
21 августа 2021, 18:30

Как бы упроситить вот такой код. Слишком много повторов.

$ca0 = round((count_active($dbcnx,0)/$total)*100);
$ca1 = round((count_active($dbcnx,1)/$total)*100);
$ca2 = round((count_active($dbcnx,2)/$total)*100);
$ca3 = round((count_active($dbcnx,3)/$total)*100);
$ca4 = round((count_active($dbcnx,4)/$total)*100);
$ca5 = round((count_active($dbcnx,5)/$total)*100);
$ca6 = round((count_active($dbcnx,6)/$total)*100);
$ca99 = round((count_active($dbcnx,99)/$total)*100);
Answer 1

Хранить в переменных изначально плохая идея, лучше не плодить кучу однотипных переменных и хранить данные в массиве

for ($i = 0; $i < 100; $i++) {
   $ca[$i] = round((count_active($dbcnx,$i)/$total)*100);
}

Так же посмотрите вот эти функции для обработки массивов на будущее

https://www.php.net/manual/ru/function.array-walk.php

https://www.php.net/manual/ru/function.array-walk.php

Answer 2

Можно имя переменной собирать вот таким образом

 for ($i = 0; $i < 100; $i++) {
   ${'ca'.$i} = round((count_active($dbcnx,$i)/$total)*100);
}

Но если честно, мне думается, надо сделать массив - вам же потом это обрабатывать, всю эту кучу переменных

READ ALSO
session сбрасывается после перезапуска браузера (моб) php

session сбрасывается после перезапуска браузера (моб) php

Подскажите пожалуйста, есть такой код авторизации на сайте

167
htmlentities() expects parameter 1 to be string, array given

htmlentities() expects parameter 1 to be string, array given

День добрыйОбновляю Laravel и ловлю эту ошибку (ErrorException in helpers

259
Рекурсивный вариант array_change_key_case

Рекурсивный вариант array_change_key_case

Есть ли вариант функции array_change_key_case(), работающий со вложенными массивами?

186
Регулярное выражение для цифр и символа pipe (труба) |

Регулярное выражение для цифр и символа pipe (труба) |

Подскажите как правильно составить регулярное выражение для проверки строи которая может содержать только цифры и возможны(но не обязательны)...

128