Здравствуйте уважаемые форумчане. Помоги пожалуйста, не как не могу сообразить, как правильно разделить данный массив на подмасивы. Имею масив PHP: [0] => Array ( [start] => 1 [recorded] => 2018-03-10 09:03:23 ) [1] => Array( [start] => 1 [recorded] => 2018-03-10 09:03:43 ) [2] => Array( [start] => 1 [recorded] => 2018-03-10 09:04:03 ) [3] => Array( [start] => 1 [recorded] => 2018-03-10 09:06:54 ) [4] => Array( [start] => 0 [recorded] => 2018-03-10 09:07:15 ) [5] => Array( [start] => 0 [recorded] => 2018-03-10 09:07:35 ) [6] => Array( [start] => 0 [recorded] => 2018-03-10 09:07:55 ) [7] => Array( [start] => 1 [recorded] => 2018-03-10 09:08:15 ) [8] => Array( [start] => 1 [recorded] => 2018-03-10 09:08:36 ) [9] => Array( [start] => 1 [recorded] => 2018-03-10 09:08:56 ) [10] => Array( [start] => 1 [recorded] => 2018-03-10 09:09:17 ) [11] => Array( [start] => 1 [recorded] => 2018-03-10 09:09:37 ) Мне его нужно разбить на интервала, интервал прерывается в том месте, start =>0. Т.е. в данном случае у меня должно получиться интервалs 0-4 и 7-11. Спасибо.
Хотелось бы вот такой вид PHP: [0] => Array ( [0] => Array ( [start] => 1 [recorded] => 2018-03-10 09:06:54 ) [1] => Array ( [start] => 1 [recorded] => 2018-03-10 09:06:55 ) [2] => Array ( [start] => 1 [recorded] => 2018-03-10 09:06:56 ) ) [1] => Array ( [0] => Array ( [start] => 0 [recorded] => 2018-03-10 09:06:59 ) [1] => Array ( [start] => 0 [recorded] => 2018-03-10 09:06:60 ) [2] => Array ( [start] => 0 [recorded] => 2018-03-10 09:07:00 ) ) [2] => Array ( [0] => Array ( [start] => 1 [recorded] => 2018-03-10 09:08:54 ) [1] => Array ( [start] => 1 [recorded] => 2018-03-10 09:08:54 ) [2] => Array ( [start] => 1 [recorded] => 2018-03-10 09:08:54 ) ) Можете показать как Вы можете предложить, я бужу смотреть и ваш пример. Спасибо
с интервалами я так и не понял. Взаимодействие с recorded какое - либо есть ? или тупо проходим каждый цикл, проверяя лишь start на измененный идентификатор для создания нового вложения со метками времени ?
recorded и есть самый главный параметр с него будет браться начало и конец когда будет готовый под массив (первый и последний ключ). start=>1 это включено и работает, =>0 отключено, вот теперь нужно подсчитать сколько времени включено и показать на графику в какое время. При этом старты бывают по 3-5 раз в день ну и соответсвенно стопы. Да так и есть цыкл крутится и проверяет если включено то пишем = 1 в базу с обновлением времени, если 0 то тоже пишем, что бы как то понимать когда был старт, и стоп.
PHP: <?php $a = [ [ 'start' => 1, 'recorded' => '2018-03-10 09:03:23' ], [ 'start' => 1, 'recorded' => '2018-03-10 09:03:43' ], [ 'start' => 1, 'recorded' => '2018-03-10 09:04:03' ], [ 'start' => 1, 'recorded' => '2018-03-10 09:06:54' ], [ 'start' => 0, 'recorded' => '2018-03-10 09:07:15' ], [ 'start' => 0, 'recorded' => '2018-03-10 09:07:35' ], [ 'start' => 0, 'recorded' => '2018-03-10 09:07:55' ], [ 'start' => 1, 'recorded' => '2018-03-10 09:08:15' ], [ 'start' => 1, 'recorded' => '2018-03-10 09:08:36' ], [ 'start' => 1, 'recorded' => '2018-03-10 09:08:56' ], [ 'start' => 1, 'recorded' => '2018-03-10 09:09:17' ], [ 'start' => 1, 'recorded' => '2018-03-10 09:09:37' ] ]; $int = null; $new = []; $count = 0; foreach ( $a AS $b ) { if ( $int === $b['start'] ) { $new[$count][] = $b; } else { $int = $b['start']; $new[++$count][] = $b; } } print_r ( array_values ( $new ) ); Код (Text): Array ( [0] => Array ( [0] => Array ( [start] => 1 [recorded] => 2018-03-10 09:03:23 ) [1] => Array ( [start] => 1 [recorded] => 2018-03-10 09:03:43 ) [2] => Array ( [start] => 1 [recorded] => 2018-03-10 09:04:03 ) [3] => Array ( [start] => 1 [recorded] => 2018-03-10 09:06:54 ) ) [1] => Array ( [0] => Array ( [start] => 0 [recorded] => 2018-03-10 09:07:15 ) [1] => Array ( [start] => 0 [recorded] => 2018-03-10 09:07:35 ) [2] => Array ( [start] => 0 [recorded] => 2018-03-10 09:07:55 ) ) [2] => Array ( [0] => Array ( [start] => 1 [recorded] => 2018-03-10 09:08:15 ) [1] => Array ( [start] => 1 [recorded] => 2018-03-10 09:08:36 ) [2] => Array ( [start] => 1 [recorded] => 2018-03-10 09:08:56 ) [3] => Array ( [start] => 1 [recorded] => 2018-03-10 09:09:17 ) [4] => Array ( [start] => 1 [recorded] => 2018-03-10 09:09:37 ) ) )