powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / двумерный массив сложить 1 и 2 значение, 2 и 3 и тд...
6 сообщений из 6, страница 1 из 1
двумерный массив сложить 1 и 2 значение, 2 и 3 и тд...
    #38699532
NightWolfq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день такая задача есть

массив


Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
Array
(
    [0] => Array
        (
            [0] => 2014-06-26 14:26:38
            [1] => 50324
            [2] => 11944.4
            [3] => 163.741
            [4] => 12674
        )

    [1] => Array
        (
            [0] => 2014-06-26 14:27:56
            [1] => 53814
            [2] => 12891.9
            [3] => 56.9736
            [4] => 7599.63
        )

    [2] => Array
        (
            [0] => 2014-06-26 14:27:56
            [1] => 50324
            [2] => 13235.8
            [3] => 6.14431
            [4] => 10629.6
        )

    [3] => Array
        (
            [0] => 2014-06-26 14:27:58
            [1] => 53814
            [2] => 12941.4
            [3] => 5.98144
            [4] => 10169.8
        )

    [4] => Array
        (
            [0] => 2014-06-26 14:27:58
            [1] => 50324
            [2] => 12934.2
            [3] => 5.98144
            [4] => 10148.3
        )

)



нужно сложить объединить значения сравнить если

перебрать все значения и если [1] совпадают то сортировать по [0] и

[2] сложить со следующим значением [2]

пример

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
 [0] => Array
        (
            [0] => 2014-06-26 14:26:38
            [1] => 50324
            [2] => 11944.4
            [3] => 163.741
            [4] => 12674
        )


[1] => 50324 совпадает с

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
   [2] => Array
        (
            [0] => 2014-06-26 14:27:56
            [1] => 50324
            [2] => 13235.8
            [3] => 6.14431
            [4] => 10629.6
        )


отсортировать по дате и сложить [2] => 13235.8 с [2] => 11944.4 и вывести результат
потом
найти
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
    [4] => Array
        (
            [0] => 2014-06-26 14:27:58
            [1] => 50324
            [2] => 12934.2
            [3] => 5.98144
            [4] => 10148.3
        )


и [2] => 11944.4 сложить с [2] => 12934.2 и вывести результат


как закончатся совпадения 50324
взять [1] => 53814
и тд
...
Рейтинг: 0 / 0
двумерный массив сложить 1 и 2 значение, 2 и 3 и тд...
    #38699592
NightWolfq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
подробный пример

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
Array
(
    [0] => Array
        (
            [0] => 2014-06-26 14:26:38
            [1] => 50324
            [2] => 11944.4
            [3] => 163.741
            [4] => 12674
        )
 
    [1] => Array
        (
            [0] => 2014-06-26 14:27:56
            [1] => 53814
            [2] => 12891.9
            [3] => 56.9736
            [4] => 7599.63
        )
 
    [2] => Array
        (
            [0] => 2014-06-26 14:27:56
            [1] => 50324
            [2] => 13235.8
            [3] => 6.14431
            [4] => 10629.6
        )
 
    [3] => Array
        (
            [0] => 2014-06-26 14:27:58
            [1] => 53814
            [2] => 12941.4
            [3] => 5.98144
            [4] => 10169.8
        )
 
    [4] => Array
        (
            [0] => 2014-06-26 14:27:58
            [1] => 50324
            [2] => 12934.2
            [3] => 5.98144
            [4] => 10148.3
        )
 
)



найти
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    [0] => Array
        (

            [1] => 50324

        )
    [2] => Array
        (

            [1] => 50324

        )


и отсортировать
[0] => 2014-06-26 14:26:38
и
[0] => 2014-06-26 14:27:56

сложить
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
(
    [0] => Array
        (

            [2] => 11944.4

        )
    [2] => Array
        (

            [2] => 13235.8

        )



и вывести результат


потом

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
    [2] => Array
        (
            [0] => 2014-06-26 14:27:56
            [1] => 50324
            [2] => 13235.8
            [3] => 6.14431
            [4] => 10629.6
        )
 
    [4] => Array
        (
            [0] => 2014-06-26 14:27:58
            [1] => 50324
            [2] => 12934.2
            [3] => 5.98144
            [4] => 10148.3
        )



потом
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
    [1] => Array
        (
            [0] => 2014-06-26 14:27:56
            [1] => 53814
            [2] => 12891.9
            [3] => 56.9736
            [4] => 7599.63
        )
     [3] => Array
        (
            [0] => 2014-06-26 14:27:58
            [1] => 53814
            [2] => 12941.4
            [3] => 5.98144
            [4] => 10169.8
        )
...
Рейтинг: 0 / 0
двумерный массив сложить 1 и 2 значение, 2 и 3 и тд...
    #38699771
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NightWolfq,

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
$list = ...; // твой исх. массив

$index = $indexGr = $indexGrF = [];
foreach($list as $i => $b)
{
    if (!isset($indexGrF[$b[1]])) { $indexGr[] = $b[1]; $indexGrF = array_flip($indexGr); }
    $index[$i] = $b[1].":".((strtotime($b[0]) - mktime(0, 0, 0, 1, 1, 2000)) + ($i * pow(10, -6)));
}

natsort($index);

$out = [];
$c = "";
foreach($index as $i => $b) 
{
    $gr = explode(":", $b)[0];
    if ($gr !== $c) { $sum = $a[$i][2]; $c = $gr; continue; }
    $sum += $a[$i][2];
    $out[$gr][] = $sum;
}

foreach($indexGr as $gr) 
{
    print_r("Группа: $gr<br>");
    foreach($out[$gr] as $sum) print_r("$sum<br>"); 
}




Если есть желание можешь
в качестве благодарности купить мне кофе
...
Рейтинг: 0 / 0
двумерный массив сложить 1 и 2 значение, 2 и 3 и тд...
    #38699775
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В приведенном решении сумма идет накопительная.
Если надо, чтобы сумма всегда была только попарно, тогда

вот эти две строчки

Код: php
1.
2.
$sum += $a[$i][2];
$out[$gr][] = $sum;



просто замени на вот эти две строчки:

Код: php
1.
2.
$out[$gr][] = $sum + $a[$i][2];
$sum = $a[$i][2];



и тогда подсчет будет как в исходной задаче
...
Рейтинг: 0 / 0
двумерный массив сложить 1 и 2 значение, 2 и 3 и тд...
    #38699838
NightWolfq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Lumix,

ооо похоже то что нужно!

только вот вопрос
Notice: Undefined variable: a in p.php on line 248
Notice: Undefined variable: a in p.php on line 249
Notice: Undefined variable: a in p.php on line 250

Код: php
1.
2.
3.
4.
    $gr = explode(":", $b)[0];
    if ($gr !== $c) { $sum = $a[$i][2]; $c = $gr; continue; }
$out[$gr][] = $sum + $a[$i][2];
$sum = $a[$i][2];


откуда берется переменная a? она по идеи массив но вот откуда?
...
Рейтинг: 0 / 0
двумерный массив сложить 1 и 2 значение, 2 и 3 и тд...
    #38701011
NightWolfq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
дошло $a это первоначальный массив
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / двумерный массив сложить 1 и 2 значение, 2 и 3 и тд...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]