А мне вникать в суть проблемы лень если чуваку самому лень подумать. Поэтому я хочу чтобы он подумал, и правильно всё сделал. Я просто вообще не приминял пока ещё тех функций которые ты написал, я их знаю но не применял, если бы я решал данную задачу я бы вообще изначально подругому всё сделал, у меня бы даже такого массива не было, он бы имел другой вид. Я выше писал какого вида должен быть массив.
А ты какой массив подставляешь к его коду вот этот PHP: array ( '2016-06-21 20:00:00' => 5, '2016-06-21 19:00:00' => 10, '2016-06-21 16:00:00' => 1000, '2016-06-21 13:00:00' => 7, '2016-06-21 12:00:00' => 3, '2016-06-20 17:00:00' => 81, '2016-06-20 16:00:00' => 1, ) или вот этот PHP: $finalArr = array ( 1044 => array ( 'workTime' => array ( '2016-06-21 20:00:00' => 5, '2016-06-21 19:00:00' => 10, '2016-06-21 16:00:00' => 1000, '2016-06-21 13:00:00' => 7, '2016-06-21 12:00:00' => 3, '2016-06-20 17:00:00' => 81, '2016-06-20 16:00:00' => 1, ) ) );
--- Добавлено --- PHP: //исходные данные $arr = array( '2016-06-21 20:00:00' => 5, '2016-06-21 19:00:00' => 10, '2016-06-21 16:00:00' => 1000, '2016-06-21 13:00:00' => 7, '2016-06-21 12:00:00' => 3, '2016-06-20 17:00:00' => 81, '2016-06-20 16:00:00' => 1, ); $newArr = array(); //будут храниться новые данные foreach ($arr as $key => $val) { $first = new DateTime($key); next($arr); list($key1, $val1) = each($arr); prev($arr); $second = new DateTime($key1); $difference = $first->diff($second); if ($difference->format('%h') < 2) { $word = strstr($key, ' ', TRUE); if (isset($newArr[$word])) { $newArr[$word] = $newArr[$word] + $val + $val1; } else { $newArr[$word] = $val + $val1; } } }
я тебе написал у тебя изначально массив не верный. Я написал какого вида массив для этого нужно иметь чтобы лишних функций избежать.
@askanim, изобретай велосипеды, это здорово тренерует мозг. --- Добавлено --- @wet, и как ты вставил это дело в свой код?
@mahmuzar я и изобретаю, но часто юзаю изобретёное. --- Добавлено --- @mahmuzar чем тебе не нравится подход в меньше кода ?) --- Добавлено --- @mahmuzar у меня тоже что и у него. по его коду.
@askanim, пляшем от исходных данных. А менять ему систему или нет это уже дело десятое и не решается тут в переписке. --- Добавлено --- @askanim, ошибки есть какие?
PHP: echo $difference->format('%h').'<br>'; Покажите что у вас там выводит вот так? --- Добавлено --- Я лично вижу вот такие числа. 6 4 20 20 19 20 Поэтому в условие и не входит
выводит разницу в часах --- Добавлено --- Версия php какая? --- Добавлено --- должен выводить Код (Text): 1 3 3 1 19 1 10
нет так как я срезал работает, но не правильно, а так как ты кинул работает, но тоже не так как то. Я просто не понимаю значения всех этих функций PHP: next($arr); list($key1, $val1) = each($arr); prev($arr); \DateTime($key1); ->diff Я так в скольз почитал, но калупаться не хочу особо, могу направить, но меня не услышали, сам работаю сижу. --- Добавлено --- а у меня 12 48 (Владивосток. ) Там случайно функции не от текущего времени ли работают ? Хотя а разница какая должна быть могу тебе по тимке показать что у меня не работает. Но позже.
Получилось, что в 5.6 функция next была лишняя, в 7.0.3 без нее результат не тот был. В итоге получается, даты обрабатывается норм, но работа foreach другая: Код (Text): //7.0.3 var_dump(current($arr)); // int(5) //5.6 var_dump(current($arr)); // int(10) Разное поведение, как такое может быть? Это первая итерация. В 7 указатель не перемещается.
Не чего сказать не могу с функциями дат особо не работал ещё, сейчас другие аспекты изучаю. --- Добавлено --- чувак там чёто сделал и у него заработало, тока я уверен его проблему можно было решить 5тью строчками, а не тем кол-вом который он написал, даже меньше. Вот не понимаю людей которые делают, " ах лиж бы заработало и насрать". --- Добавлено --- Вот правильно сам себя не похвалишь ни кто не похвалит.
читаешь через строчку? --- Добавлено --- заработало - ну и ладно. ) Главное чтобы не вернулся со словами: -"Оказывается то се".
Я просто читал про эти функции, но например не понимаю зачем перемещать указатель итерации, не ну возможно встречаются такие задачи, да наверное не доработка, либо отказались от функции, мб в 7-ой что-то другое юзается? Там же много что изменили...