С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
-19 / 0 / 0
Регистрация: 24.04.2021
Сообщений: 40

Как соединить несколько файлов с массивами (данными) в один массив php?

02.05.2021, 17:12. Показов 1448. Ответов 0

Студворк — интернет-сервис помощи студентам
добрый вечер. Никак не могу понять, как соединить несколько файлов с массивами (данными).Получаю данные по api, сохраняю в файлы. (возможно я делаю что то не так, но другую логику не могу придумать, так как каждый день будут приходить новые данные в другие файлы и папки)

1 файл имя папки/сегодняшняя дата.txt

Получаю я его так
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
    
$date = date("Y-m-d");
 
$arrMatches = file_get_contents("allmatches/$date.txt");
$arrMatches = json_decode($arrMatches,true);


массив данного файла примерно такой, но конечно там намного больше данных, в этом видимо и проблема, так как соединяя цикл в цикле, все зависает......

Кликните здесь для просмотра всего текста
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
27
$arr = [
        'events' => [
            [
                'firstToServe' => 2,
                'tournament' => [
                    'name' => 'Estoril, Portugal',
                    'slug' => 'estoril-portugal',
                    'id' => 90696
                ],
                'roundInfo' => [
                    'round' => 25,
                    'name' => '1/16'
                ],
                'id_match' => 9490372,
                'homeTeam' => [
                    'name' => 'Ramos-Viñolas A.',
                    'slug' => 'ramos-vinolas-albert',
                    'id' => 16822
                ],
                'awayTeam' => [
                    'name' => 'Davidovich Fokina A.',
                    'slug' => 'davidovich-fokina-alejandro',
                    'id' => 157456
                ]
            ]
        ]
    ];


Далее начинается треш, но по другому я не знаю как сделать.... Возможно надо тоже сохранять в один файл все...

2. сохраняю данные таким образом

Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$file = file_get_contents("allmatches/$date.txt");
$file = json_decode($file, true);
 
foreach ($file['events'] as $matches){
    if($matches['status']['type'] == 'notstarted' && empty($matches['homeTeam']['subTeams']) && empty($matches['awayTeam']['subTeams'])){
        $homeTeam[] = $matches['homeTeam']['id'];
        $awayTeam[] = $matches['awayTeam']['id'];
        $pars = array_merge($homeTeam, $awayTeam);
    }
}
foreach ($pars as $res){
    if(!is_dir("allteams/$date")) {
        mkdir("allteams/$date");
    }else{
        curlParse("api сайт" ,$headers, $referer, $useragent, "allteams/$date", $res);
    }
}


И открываю файлы с данными так

Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
    $pathAllteams = scandir("allteams/$date");
 
    foreach($pathAllteams as $filename) {
        $pathinfo = pathinfo("$filename");
        if ($pathinfo['filename'] != null && $pathinfo['filename'] != '.') {
            $basename = $pathinfo['basename'];
            $fileTeams = file_get_contents("allteams/$date/$basename");
            $fileTeams = json_decode($fileTeams, true);
        }
    }


Как видите, имя файла это id игрока из первого файла, изначально думал, что это поможет мне связать потом все эти данные.

Массив получаю таков

Кликните здесь для просмотра всего текста
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
$arr1 = [
        'events' => [
            [
                'firstToServe' => 2,
                'tournament' => [
                    'name' => 'Estoril, Portugal',
                    'slug' => 'estoril-portugal',
                    'id' => 90696
                ],
                'roundInfo' => [
                    'round' => 25,
                    'name' => '1/32'
                ],
                'id_match' => 9490372,
                'homeTeam' => [
                    'name' => 'Ramos-Viñolas A.',
                    'slug' => 'ramos-vinolas-albert',
                    'id' => 16822
                ],
                'awayTeam' => [
                    'name' => 'Bertuccioli F.',
                    'slug' => 'bertuccioli-federico',
                    'id' => 167560
                ],
                'homeScore' =>
                    [
                        'current' => 2,
                        'display' => 2,
                        'period1' => 6,
                        'period2' => 6,
                        'period3' => 0
                    ],
                'awayScore' =>
                    [
                        'current' => 0,
                        'display' => 0,
                        'period1' => 3,
                        'period2' => 1,
                        'period3' => 0
                    ]
            ],
            [
                'firstToServe' => 2,
                'tournament' => [
                    'name' => 'Antalya',
                    'slug' => ' antalya',
                    'id' => 90696
                ],
                'roundInfo' => [
                    'round' => 25,
                    'name' => '1/8'
                ],
                'id_match' => 9490372,
                'homeTeam' => [
                    'name' => 'Borroni A',
                    'slug' => 'borroni-andrea',
                    'id' => 99307
                ],
                'awayTeam' => [
                    'name' => 'Ramos-Viñolas A.',
                    'slug' => 'ramos-vinolas-albert',
                    'id' => 16822
                ],
                'homeScore' => 
                [
                    'current' => 1,
                    'display' => 1,
                    'period1' => 6,
                    'period2' => 7,
                    'period3' => 10
                ],
                'awayScore' => 
                [
                    'current' => 2,
                    'display' => 2,
                    'period1' => 7,
                    'period2' => 5,
                    'period3' => 12
                ]
            ]
        ]
    ];


тут взят файл с
PHP
1
2
3
'name' => 'Ramos-Viñolas A.',
                    'slug' => 'ramos-vinolas-albert',
                    'id' => 16822
где он сыграл 1 домашнюю, одну гостевую игру. Так же получаю и по второму игроку из первого файла
PHP
1
2
3
4
5
                'awayTeam' => [
                    'name' => 'Davidovich Fokina A.',
                    'slug' => 'davidovich-fokina-alejandro',
                    'id' => 157456
                ]

Все бы ничего, но после второго сохранения создается папка с датой и в ней куча файлов с id игроков из первого файла, в примерах это видно, и из за этого идут жесткие зависания. Особенно когда создаю цикл в цикле, для подключения файлов и сравниваю имя файла и id игроков чтобы связать их.

На выходе хотелось бы получить такой массив, пример про одного игрока, хотя бы так, потом сам уже буду стараться делать

Кликните здесь для просмотра всего текста
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
    $arr = [
        'events' => [
            [
                'firstToServe' => 2,
                'tournament' => [
                    'name' => 'Estoril, Portugal',
                    'slug' => 'estoril-portugal',
                    'id' => 90696
                ],
                'roundInfo' => [
                    'round' => 25,
                    'name' => '1/16'
                ],
                'id_match' => 9490372,
                'homeTeam' => [
                    'name' => 'Ramos-Viñolas A.',
                    'slug' => 'ramos-vinolas-albert',
                    'id' => 16822,
                    'match' =>
                    [
                        'homeTeam' => [
                            'name' => 'Ramos-Viñolas A.',
                            'slug' => 'ramos-vinolas-albert',
                            'id' => 16822
                        ],
                        'awayTeam' => [
                            'name' => 'Bertuccioli F.',
                            'slug' => 'bertuccioli-federico',
                            'id' => 167560
                        ],
                        'homeScore' =>
                            [
                                'current' => 2,
                                'display' => 2,
                                'period1' => 6,
                                'period2' => 6,
                                'period3' => 0
                            ],
                        'awayScore' =>
                            [
                                'current' => 0,
                                'display' => 0,
                                'period1' => 3,
                                'period2' => 1,
                                'period3' => 0
                            ]
                    ]
                ],
                'awayTeam' => [
                    'name' => 'Davidovich Fokina A.',
                    'slug' => 'davidovich-fokina-alejandro',
                    'id' => 157456
                ]
            ]
        ]
    ];



Если что то не понятно или упустил что то, дополню обязательно. Просто приболел, голова плохо варит, извиняюсь. Старался как можно понятнее все разложить.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.05.2021, 17:12
Ответы с готовыми решениями:

Соединить несколько текстовых файлов в один
Привет форумчане. Нужен bat, который сможет соединить несколько текстовых файлов в один и второй bat, который сможет их разделить....

Как соединить несколько PDF файлов в один документ PDF?
имею распечатку книжки в 45 pdf файлах. как-то неудобно просматривать её. как их все объединить в один pdf файл? Может спец софт необходим?

Соединить несколько текстовых файлов в один с указанием имени каждого
Написать программу,которая из всех текстовых файлов в каталога формирует один большой текстовый файл, причем перед содержимым каждого файла...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.05.2021, 17:12
Помогаю со студенческими работами здесь

Соединить несколько текстовых файлов в один и отфильтровать содержимое результирующего файла
Парни подскажите деревне как батник правильно оформить - задача - Батник лежит в любой директории диска E -нужно что бы собирал и...

Как на VB соединить несколько *.pdf в один?
Kak na VB soedinit' neskolko *.pdf v odin??

Как соединить массив символов и один символ
void Match(char x) { if (Look == x) GetChar(); else { char s="\'"; strcat(s, x); ...

Как правильно соединить несколько жестких в RAID массив?
Как правильно соединить несколько жестких в один размер !!! и как установить RAID

Соединить несколько столбцов в один!
Есть задачка, ответа на нее нормального и рабочего не могу найти 3-ий день уже! Одни макросы с ошибками другие не так как надо делают и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru