Добрый день! Помогите реализовать нижеуказанный алгоритм /// Массив цен /// $price = array ( array ("DATE" => "01.01.2010", "PRICE" => "2665"), array ("DATE" => "01.01.2011", "PRICE" => "3071"), array ("DATE" => "01.07.2012", "PRICE" => "3536"), array ("DATE" => "01.12.2012", "PRICE" => "3530"), array ("DATE" => "01.01.2013", "PRICE" => "3533"), array ("DATE" => "01.04.2013", "PRICE" => "3427"), array ("DATE" => "01.07.2013", "PRICE" => "3943"), array ("DATE" => "01.08.2013", "PRICE" => "4065"), array ("DATE" => "01.10.2013", "PRICE" => "4143"), array ("DATE" => "01.01.2014", "PRICE" => "4065"), array ("DATE" => "03.08.2014", "PRICE" => "4065"), array ("DATE" => "01.05.2015", "PRICE" => "4370"), array ("DATE" => "01.07.2015", "PRICE" => "4540"), ); ВО-ПЕРВЫХ Нужно отфильтровать в цикле по датам /// Даты /// $dateFrom = "01.01.2015"; $dateTo = "31.12.2015"; /// Например /// foreach ( $price as $element ) { if ( strtotime ( $element["DATE"] ) >= strtotime ( $dateFrom ) && strtotime ( $element["DATE"] ) <= strtotime ( $dateTo ) ) { $filteredPrice[] = array ("DATE" => $element["DATE"] , "PRICE" => $element["PRICE"] ); } } При такой фильтрации получу результат array ("DATE" => "01.05.2015", "PRICE" => "4370"), array ("DATE" => "01.07.2015", "PRICE" => "4540"), Что необходимо сделать Учитывая что выбран период с 01.01.2015 а первая цена в полученном после фильтрации массиве начинается только с 01.07.2015, необходимо добавить "срез последних", то есть в массив должна попасть предыдущая цена array ("DATE" => "03.08.2014", "PRICE" => "4065"), В итоге чтобы сделать расчет для выбранного периода "01.01.2015" и "31.12.2015" должен получить массив array ("DATE" => "03.08.2014", "PRICE" => "4065"), array ("DATE" => "01.05.2015", "PRICE" => "4370"), array ("DATE" => "01.07.2015", "PRICE" => "4540"), ВО-ВТОРЫХ Есть массив проценты на который необходимо пересчитать /// Массив проценты /// $percent = array ( array ("DATE" => "01.09.2015", "PERCENT" => "3"), array ("DATE" => "01.11.2015", "PERCENT" => "5"), array ("DATE" => "01.12.2015", "PERCENT" => "7"), array ("DATE" => "20.12.2015", "PERCENT" => "2"), ); В итоге должны получить массив с учетом увеличения на проценты array ("DATE" => "03.08.2014", "PRICE" => "4065"), array ("DATE" => "01.05.2015", "PRICE" => "4370"), array ("DATE" => "01.07.2015", "PRICE" => "4540"), array ("DATE" => "03.09.2014", "PRICE" => "4676,20"), array ("DATE" => "01.11.2015", "PRICE" => "4910,01"), array ("DATE" => "01.12.2015", "PRICE" => "5253,71"), array ("DATE" => "20.12.2015", "PRICE" => "5358,78"), В-ТРЕТЬИХ Необходимо полученный массив переложить на выбранный период 12 месяцев В итоге должны получить новый массив по месяцам array ("MONTH" => "1", "DATE" => "03.08.2014", "PRICE" => "4065"), array ("MONTH" => "2", "DATE" => "03.08.2014", "PRICE" => "4065"), array ("MONTH" => "3", "DATE" => "03.08.2014", "PRICE" => "4065"), array ("MONTH" => "4", "DATE" => "03.08.2014", "PRICE" => "4065"), array ("MONTH" => "5", "DATE" => "01.05.2015", "PRICE" => "4370"), array ("MONTH" => "6", "DATE" => "01.05.2015", "PRICE" => "4370"), array ("MONTH" => "7", "DATE" => "01.07.2015", "PRICE" => "4540"), array ("MONTH" => "8", "DATE" => "01.07.2015", "PRICE" => "4540"), array ("MONTH" => "9", "DATE" => "03.09.2014", "PRICE" => "4676,20"), array ("MONTH" => "10", "DATE" => "03.09.2014", "PRICE" => "4676,20"), array ("MONTH" => "11", "DATE" => "01.11.2015", "PRICE" => "4910,01"), array ("MONTH" => "12", "DATE" => "01.12.2015", "PRICE" => "5253,71"), array ("MONTH" => "12", "DATE" => "20.12.2015", "PRICE" => "5358,78"), Период будет выбираться только в рамках одного года
@Михаил77, уже вторая на моей памяти тема. Пора было освоить кнопки вставки кода и т.п. А то модеры будут ругаться