Я чувствую себя довольно глупо, когда спрашиваю об этом, так как чувствую, что должен был бы это выяснить, но, увы, я трачу на это слишком много времени и расстраиваюсь, поэтому решил, что попросил бы помочь.У меня есть массив PHP, который выглядит следующим образом.Это только пример, так как этот проект находится в стадии разработки:
$donations = array(
"2018 December" => array('30','20','100'),
"2018 November" => array('10','5','200','1000')
);
Я сделал несколько попыток для вложенных циклов for и foreach, чтобы попытаться получить значения, и я могу подобраться, но яКажется, всегда сталкиваешься с разными дорожными блоками.Например, я имел год и месяцы как часть подмассива.Мне удалось успешно извлечь все значения с помощью цикла for и затем foreach, но я не мог понять, как исключить первые два элемента (год и месяц) в foreach.Вот конечная цель ...
Каждый вложенный массив содержит пожертвования отдельных членов в долларах США.Массив может увеличиваться в течение текущего месяца, так как поступает больше пожертвований, но как только пролонгируется месяц, подмассив следующего месяца начинает заполняться пожертвованиями, а предыдущий месяц «архивируется».Мне нужно сложить все пожертвования для каждого вложенного массива и сделать доступным каждое значение, которое будет представлено в процентах (от округления до ближайшего целого числа) в виде гистограммы, отображаемой на веб-странице.
Может кто-нибудь помочь, пожалуйстамне формализовать мой процесс?
Это то, что я пытался изначально.Это использует более старый, более уродливый массив.Следует отметить, что эта версия в настоящее время не округляется до ближайшего целого числа.Еще не разобрался в этой части.Эти цифры просто хорошо тренируются в этом примере.Также, если вам интересно, общая сумма в долларах рассчитывается отдельно в другой части страницы.$ total = эксплуатационные расходы в месяц для группы, но в этом примере я вручную установил его на 100 $.
$donate = array(
array("5","10"),
array("20","30"),
array("0"),
array("0"),
array("0")
);
$keydonate = array_keys($donate);
$taco = array();
for($i = 0; $i < count($donate); $i++) {
foreach($donate[$keydonate[$i]] as $value) {
$sum = $sum + $value;
$taco[$i] = ($sum/$total)*100;
}
}
Это вроде работает, но, опять же, моя логика здесь сильно ошибочна, и у этого метода есть довольно серьезные ошибки.Например, массивы продолжают складываться друг с другом за предыдущие месяцы.Каждый месяц им нужно возвращаться к настройкам по умолчанию.Обратите внимание, что на снимке экрана декабрь - это сумма декабря и ноября, а затем снова и снова?Кроме того, мне нравится возможность добавлять месяц и год к массиву, который эта версия не может обрабатывать.Мне нужны серьезные рекомендации и примеры, как правильно сделать это, пожалуйста.Я знаю достаточно PHP, чтобы быть опасным!
Спасибо!