Как отсортировать данные (php).

long

New Member
Регистрация
05.11.2022
Сообщения
6
Доброго времени суток уважаемые форумчане! В php имеется массив, состоящий из трёх элементов. Каждый элемент имеет структуру: name, company, position. Это (условный) список сотрудников, который содержит их имена, компанию в которой они работают и должность. По условию задачки требуется вывести список и отсортировать его в зависимости от компании, грубо говоря, чтоб на экране было что-то похожее:

ITStep
- Oksana
- Irina


Samsung
- Olesya
- Igor


Вот мой массив:
PHP:
<?php
$arr = [['name' => "Oksana", 'company' => "ITStep", 'position' => "Teacher"],
    ['name' => "Olesya", 'company' => "Samsung", 'position' => "Developer"],
    ['name' => "Irina", 'company' => "ITStep", 'position' => "Teacher"],
    ['name' => "Igor", 'company' => "Samsung", 'position' => "Developer"],
    ];
?>
Помогите пожалуйста разобраться с задачкой.
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 138
Если компании неизвестны
PHP:
<?php
$arr = [['name' => "Oksana", 'company' => "ITStep", 'position' => "Teacher"],
    ['name' => "Olesya", 'company' => "Samsung", 'position' => "Developer"],
    ['name' => "Irina", 'company' => "ITStep", 'position' => "Teacher"],
    ['name' => "Igor", 'company' => "Samsung", 'position' => "Developer"],
    ];

// получаем колонку с компаниями
$nounique_company = array_column($arr, 'company');

// Фильтруем на уникальные
$companies = array_unique($nounique_company);

// Проходмся по каждой компании
foreach ($companies as &$company) {
    // Теперь выбираем компанию из массива
    $cur_list = array_filter($arr, function($v) use ($company) {
        return $v['company'] == $company;
    });

    // Отрисовываем компанию
    echo '<h1>'.$company.'</h1>';
    foreach ($cur_list as $key => $value) {
        echo '<p>'.$value['name'].'</p>';
    }
}
?>
 
Верх Низ