За последние 24 часа нас посетили 60322 программиста и 1818 роботов. Сейчас ищут 850 программистов ...

Проблема с обработкой массива

Тема в разделе "PHP для новичков", создана пользователем Singh, 3 фев 2017.

  1. Singh

    Singh Новичок

    С нами с:
    3 фев 2017
    Сообщения:
    6
    Симпатии:
    1
    Есть массив:
    Код (Text):
    1. Array
    2. (
    3.     [0] => Array
    4.         (
    5.             [bird] => Array
    6.                 (
    7.                     [eagle] => 1
    8.                 )
    9.  
    10.         )
    11.  
    12.     [1] => Array
    13.         (
    14.             [bird] => Array
    15.                 (
    16.                     [parrot] => 4
    17.                 )
    18.  
    19.         )
    20.  
    21.     [2] => Array
    22.         (
    23.             [bird] => Array
    24.                 (
    25.                     [raven] => 3
    26.                 )
    27.  
    28.         )
    29.  
    30.     [3] => Array
    31.         (
    32.             [bird] => Array
    33.                 (
    34.                     [cock] => 1
    35.                 )
    36.  
    37.         )
    38.  
    39.     [4] => Array
    40.         (
    41.             [fish] => Array
    42.                 (
    43.                     [shark] => 3
    44.                 )
    45.  
    46.         )
    47.  
    48.     [5] => Array
    49.         (
    50.             [flower] => Array
    51.                 (
    52.                     [rose] => 2
    53.                 )
    54.  
    55.         )
    56.  
    57.     [6] => Array
    58.         (
    59.             [flower] => Array
    60.                 (
    61.                     [tulip] => 6
    62.                 )
    63.  
    64.         )
    65.  
    66. )

    Нужно привести его к такому виду:
    Код (Text):
    1.  
    2. Array
    3. (
    4.     [0] => Array
    5.         (
    6.             [bird] => Array
    7.                 (
    8.                     [eagle] => 1
    9.                     [parrot] => 4
    10.                     [raven] => 3
    11.                     [cock] => 1
    12.                 )
    13.  
    14.         )
    15.  
    16.     [1] => Array
    17.         (
    18.             [fish] => Array
    19.                 (
    20.                     [shark] => 3
    21.                 )
    22.  
    23.         )
    24.  
    25.     [2] => Array
    26.         (
    27.             [flower] => Array
    28.                 (
    29.                     [rose] => 2
    30.                     [tulip] => 6
    31.                 )
    32.  
    33.         )
    34.  
    35. )

    Делаю так:
    Код (Text):
    1. for ($i = 0; $i <= 6; $i++) {
    2.  
    3.     foreach($arr[$i] as $kind => $value) {
    4.  
    5.         if (array_key_exists($kind, $arr[$i-1])) {
    6.             $arr[$i-1][$kind] += $arr[$i][$kind];
    7.             unset($arr[$i]);
    8.             $arr = array_values($arr);
    9.         }
    10.     }
    11. }
    но получается не то, что нужно:
    Код (Text):
    1.  
    2. Array
    3. (
    4.     [0] => Array
    5.         (
    6.             [bird] => Array
    7.                 (
    8.                     [eagle] => 1
    9.                     [parrot] => 4
    10.                 )
    11.  
    12.         )
    13.  
    14.     [1] => Array
    15.         (
    16.             [bird] => Array
    17.                 (
    18.                     [raven] => 3
    19.                     [cock] => 1
    20.                 )
    21.  
    22.         )
    23.  
    24.     [2] => Array
    25.         (
    26.             [fish] => Array
    27.                 (
    28.                     [shark] => 3
    29.                 )
    30.  
    31.         )
    32.  
    33.     [3] => Array
    34.         (
    35.             [flower] => Array
    36.                 (
    37.                     [rose] => 2
    38.                     [tulip] => 6
    39.                 )
    40.  
    41.         )
    42.  
    43. )

    Где-то я торможу (( Подскажите, где, плиззз!
     
  2. Singh

    Singh Новичок

    С нами с:
    3 фев 2017
    Сообщения:
    6
    Симпатии:
    1
    Всё, разобрался! Надо было добавить 9-ую строчку.
    PHP:
    1. for ($i = 0; $i <= 6; $i++) {
    2.  
    3.     foreach($arr[$i] as $kind => $value) {
    4.  
    5.         if (array_key_exists($kind, $arr[$i-1])) {
    6.             $arr[$i-1][$kind] += $arr[$i][$kind];
    7.             unset($arr[$i]);
    8.             $arr = array_values($arr);
    9.             $i--;
    10.         }
    11.     }
    12. }
     
    Fell-x27 нравится это.