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

126
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

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

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

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

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

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

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

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

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

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

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

78