За последние 24 часа нас посетили 20784 программиста и 1106 роботов. Сейчас ищут 363 программиста ...

Масив php

Тема в разделе "Решения, алгоритмы", создана пользователем fiableinua, 10 мар 2018.

  1. fiableinua

    fiableinua Новичок

    С нами с:
    10 мар 2018
    Сообщения:
    7
    Симпатии:
    0
    Здравствуйте уважаемые форумчане. Помоги пожалуйста, не как не могу сообразить, как правильно разделить данный массив на подмасивы.

    Имею масив

    PHP:
    1. [0] => Array (
    2. [start] => 1
    3. [recorded] => 2018-03-10 09:03:23
    4. )
    5.  
    6. [1] => Array(
    7. [start] => 1
    8. [recorded] => 2018-03-10 09:03:43
    9. )
    10.  
    11. [2] => Array(
    12. [start] => 1
    13. [recorded] => 2018-03-10 09:04:03
    14. )
    15.  
    16. [3] => Array(
    17. [start] => 1
    18. [recorded] => 2018-03-10 09:06:54
    19. )
    20.  
    21. [4] => Array(
    22. [start] => 0
    23. [recorded] => 2018-03-10 09:07:15
    24. )
    25.  
    26. [5] => Array(
    27. [start] => 0
    28. [recorded] => 2018-03-10 09:07:35
    29. )
    30.  
    31. [6] => Array(
    32. [start] => 0
    33. [recorded] => 2018-03-10 09:07:55
    34. )
    35.  
    36. [7] => Array(
    37. [start] => 1
    38. [recorded] => 2018-03-10 09:08:15
    39. )
    40.  
    41. [8] => Array(
    42. [start] => 1
    43. [recorded] => 2018-03-10 09:08:36
    44. )
    45.  
    46. [9] => Array(
    47. [start] => 1
    48. [recorded] => 2018-03-10 09:08:56
    49. )
    50.  
    51. [10] => Array(
    52. [start] => 1
    53. [recorded] => 2018-03-10 09:09:17
    54. )
    55.  
    56. [11] => Array(
    57. [start] => 1
    58. [recorded] => 2018-03-10 09:09:37
    59. )
    Мне его нужно разбить на интервала, интервал прерывается в том месте, start =>0.
    Т.е. в данном случае у меня должно получиться интервалs 0-4 и 7-11.

    Спасибо.
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.734
    Симпатии:
    1.315
    Адрес:
    Лень
    как должен выглядеть результативный массив?
     
  3. fiableinua

    fiableinua Новичок

    С нами с:
    10 мар 2018
    Сообщения:
    7
    Симпатии:
    0
    Хотелось бы вот такой вид

    PHP:
    1. [0] => Array (
    2.                   [0] => Array
    3.                              (
    4.                                  [start] => 1
    5.                                  [recorded] => 2018-03-10 09:06:54
    6.                               )
    7.                   [1] => Array
    8.                              (
    9.                                  [start] => 1
    10.                                  [recorded] => 2018-03-10 09:06:55
    11.                               )
    12.                   [2] => Array
    13.                               (
    14.                                  [start] => 1
    15.                                  [recorded] => 2018-03-10 09:06:56
    16.                               )
    17.                     )
    18.                    
    19. [1] => Array (
    20.                   [0] => Array
    21.                              (
    22.                                  [start] => 0
    23.                                  [recorded] => 2018-03-10 09:06:59
    24.                               )
    25.                   [1] => Array
    26.                              (
    27.                                  [start] => 0
    28.                                  [recorded] => 2018-03-10 09:06:60
    29.                               )
    30.                   [2] => Array
    31.                               (
    32.                                  [start] => 0
    33.                                  [recorded] => 2018-03-10 09:07:00
    34.                               )
    35.                     )
    36.                    
    37. [2] => Array (
    38.                   [0] => Array
    39.                              (
    40.                                  [start] => 1
    41.                                  [recorded] => 2018-03-10 09:08:54
    42.                               )
    43.                   [1] => Array
    44.                              (
    45.                                  [start] => 1
    46.                                  [recorded] => 2018-03-10 09:08:54
    47.                               )
    48.                   [2] => Array
    49.                               (
    50.                                  [start] => 1
    51.                                  [recorded] => 2018-03-10 09:08:54
    52.                               )
    53.                     )
    Можете показать как Вы можете предложить, я бужу смотреть и ваш пример.

    Спасибо
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.734
    Симпатии:
    1.315
    Адрес:
    Лень
    с интервалами я так и не понял. Взаимодействие с recorded какое - либо есть ? или тупо проходим каждый цикл, проверяя лишь start на измененный идентификатор для создания нового вложения со метками времени ?
     
  5. fiableinua

    fiableinua Новичок

    С нами с:
    10 мар 2018
    Сообщения:
    7
    Симпатии:
    0
    recorded и есть самый главный параметр с него будет браться начало и конец когда будет готовый под массив (первый и последний ключ).

    start=>1 это включено и работает, =>0 отключено, вот теперь нужно подсчитать сколько времени включено и показать на графику в какое время. При этом старты бывают по 3-5 раз в день ну и соответсвенно стопы.

    Да так и есть цыкл крутится и проверяет если включено то пишем = 1 в базу с обновлением времени, если 0 то тоже пишем, что бы как то понимать когда был старт, и стоп.
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.734
    Симпатии:
    1.315
    Адрес:
    Лень
    PHP:
    1. <?php
    2.  
    3. $a = [
    4.     [
    5.         'start' => 1,
    6.         'recorded' => '2018-03-10 09:03:23'
    7.     ],
    8.     [
    9.         'start' => 1,
    10.         'recorded' => '2018-03-10 09:03:43'
    11.     ],
    12.     [
    13.         'start' => 1,
    14.         'recorded' => '2018-03-10 09:04:03'
    15.     ],
    16.     [
    17.         'start' => 1,
    18.         'recorded' => '2018-03-10 09:06:54'
    19.     ],
    20.     [
    21.         'start' => 0,
    22.         'recorded' => '2018-03-10 09:07:15'
    23.     ],
    24.     [
    25.         'start' => 0,
    26.         'recorded' => '2018-03-10 09:07:35'
    27.     ],
    28.     [
    29.         'start' => 0,
    30.         'recorded' => '2018-03-10 09:07:55'
    31.     ],
    32.     [
    33.         'start' => 1,
    34.         'recorded' => '2018-03-10 09:08:15'
    35.     ],
    36.     [
    37.         'start' => 1,
    38.         'recorded' => '2018-03-10 09:08:36'
    39.     ],
    40.     [
    41.         'start' => 1,
    42.         'recorded' => '2018-03-10 09:08:56'
    43.     ],
    44.     [
    45.         'start' => 1,
    46.         'recorded' => '2018-03-10 09:09:17'
    47.     ],
    48.     [
    49.         'start' => 1,
    50.         'recorded' => '2018-03-10 09:09:37'
    51.     ]
    52. ];
    53.  
    54. $int = null;
    55.  
    56. $new = [];
    57.  
    58. $count = 0;
    59.  
    60. foreach ( $a AS $b )
    61. {
    62.     if ( $int === $b['start'] )
    63.     {
    64.         $new[$count][] = $b;
    65.     }
    66.     else
    67.     {
    68.         $int = $b['start'];
    69.      
    70.         $new[++$count][] = $b;
    71.     }
    72. }
    73.  
    74. print_r ( array_values ( $new ) );
    Код (Text):
    1.  
    2. Array
    3. (
    4.     [0] => Array
    5.         (
    6.             [0] => Array
    7.                 (
    8.                     [start] => 1
    9.                     [recorded] => 2018-03-10 09:03:23
    10.                 )
    11.             [1] => Array
    12.                 (
    13.                     [start] => 1
    14.                     [recorded] => 2018-03-10 09:03:43
    15.                 )
    16.             [2] => Array
    17.                 (
    18.                     [start] => 1
    19.                     [recorded] => 2018-03-10 09:04:03
    20.                 )
    21.             [3] => Array
    22.                 (
    23.                     [start] => 1
    24.                     [recorded] => 2018-03-10 09:06:54
    25.                 )
    26.         )
    27.     [1] => Array
    28.         (
    29.             [0] => Array
    30.                 (
    31.                     [start] => 0
    32.                     [recorded] => 2018-03-10 09:07:15
    33.                 )
    34.             [1] => Array
    35.                 (
    36.                     [start] => 0
    37.                     [recorded] => 2018-03-10 09:07:35
    38.                 )
    39.             [2] => Array
    40.                 (
    41.                     [start] => 0
    42.                     [recorded] => 2018-03-10 09:07:55
    43.                 )
    44.         )
    45.     [2] => Array
    46.         (
    47.             [0] => Array
    48.                 (
    49.                     [start] => 1
    50.                     [recorded] => 2018-03-10 09:08:15
    51.                 )
    52.             [1] => Array
    53.                 (
    54.                     [start] => 1
    55.                     [recorded] => 2018-03-10 09:08:36
    56.                 )
    57.             [2] => Array
    58.                 (
    59.                     [start] => 1
    60.                     [recorded] => 2018-03-10 09:08:56
    61.                 )
    62.             [3] => Array
    63.                 (
    64.                     [start] => 1
    65.                     [recorded] => 2018-03-10 09:09:17
    66.                 )
    67.             [4] => Array
    68.                 (
    69.                     [start] => 1
    70.                     [recorded] => 2018-03-10 09:09:37
    71.                 )
    72.         )
    73. )
     
    fiableinua нравится это.
  7. fiableinua

    fiableinua Новичок

    С нами с:
    10 мар 2018
    Сообщения:
    7
    Симпатии:
    0
    Спасибо тебе большое.