Уже определены переменные в многомерные массивы в PHP?

Извините, ребята, я новичок во всем этом кодировании. Я просто не могу осмыслить многомерные массивы. Я получаю всю свою информацию из файла CSV, который обрабатывается с помощью PHP. У меня есть две уже определенные переменные из CSV. Школы и комнаты. Каждая строка CSV определяет, какая школа и какая комната идут вместе. Данные из CSV будут выглядеть так.

School Gender HomeRoom
10          F          1
10          F          2
1028      F          1
10          F          2
10          F          4
1028      F          8
1026      F          5
1028      F          1
1026      F          1

Пример:

$school = array('10', '1028','1026')

$room = array('1','2','4','5','8'). 

Желаемый результат:

$list = array('10' => array('1','2','4'), '1028' => array('1','8'), '1026' => array('1','5'))

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

Пожалуйста, объясните точное требование.

Sukumar Gorai 02.07.2018 17:41
$school['school1'] = array('room1', 'room2'); и т.д ...
AbraCadaver 02.07.2018 17:41

Можете ли вы дать пример данных, а не «массив с кучей школ»?

Nigel Ren 02.07.2018 17:44

$ schoolWithRooms = array ('school1' => array ('room1', 'room2'), 'school2' => array ('roomX', 'roomY'));

schildi 02.07.2018 17:49
Как нам узнать, какие комнаты существуют в конкретной школе? Или у них у всех есть все 7 комнат
RiggsFolly 02.07.2018 17:50

Покажите нам (в своем вопросе) пример двух массивов с некоторыми ФАКТИЧЕСКИМИ репрезентативными данными в них, а затем покажите нам результат, который вы хотите в новом массиве

RiggsFolly 02.07.2018 17:52

Я обновил пост. Извините, я так расплывчата, я новичок в этом.

user9530586 02.07.2018 17:55

Возможно, вам также нужно показать нам пример файла CSV. Я до сих пор не понимаю, как правильно распределить комнаты в правильной школе.

RiggsFolly 02.07.2018 17:56

Пожалуйста, попробуйте опубликовать действительный код без синтаксических ошибок. Будьте осторожны в том, что делаете.

KIKO Software 02.07.2018 17:57

Я снова обновил сообщение с образцами данных.

user9530586 02.07.2018 18:08
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
10
68
1

Ответы 1

<?php

$csv =<<<CSV
School Gender HomeRoom
10 F 1
10 F 2
1028 F 1
10 F 2
10 F 4
1028 F 8
1026 F 5
1028 F 1
1026 F 1
CSV;
foreach(explode("\n", $csv) as $line) {
    $items[] = str_getcsv($line, ' ');
}

$headings = array_shift($items);
foreach($items as $item)
    $list[$item[0]][] = $item[2];

$list = array_map('array_unique', $list);

var_export($list);

Выход:

array (
    10 => 
    array (
    0 => '1',
    1 => '2',
    3 => '4',
    ),
    1028 => 
    array (
    0 => '1',
    1 => '8',
    ),
    1026 => 
    array (
    0 => '5',
    1 => '1',
    ),
)

Другие вопросы по теме