Loading...
marivmari avatar marivmari 2 Точки

06. Company users /Associative arrays excersise

Не мога да се оправя със сортирането в задачата, а може би имам и друга грешка

https://pastebin.com/aAN8r74y

6. Company Users
Write a program which keeps information about companies and their employees.
You will receive company name and employee's id, until you receive the command "End". Add each employee to
the given company. Keep in mind that a company cannot have two employees with the same id.
When you finish reading data, order the companies by the name in ascending order.
Print the company name and each employee's id in the following format:
{companyName}
-- {id1}
-- {id2}
-- {idN}
Input / Constraints
 Until you receive "End", the input come in the format: "{companyName} -> {employeeId}".
 The input always will be valid.
Examples

Input Output

SoftUni -> AA12345
SoftUni -> BB12345
Microsoft -> CC12345
HP -> BB12345
End

HP
-- BB12345
Microsoft
-- CC12345
SoftUni
-- AA12345
-- BB12345

SoftUni -> AA12345
SoftUni -> CC12344
Lenovo -> XX23456
SoftUni -> AA12345
Movement -> DD11111
End

Lenovo
-- XX23456
Movement
-- DD11111
SoftUni
-- AA12345

 

 

Тагове:
0
Fundamentals Module 25/03/2019 16:08:50
willystyle avatar willystyle 2472 Точки
Best Answer

Здравей, нещо си си усложнил задачата, нужен е само един ksort() да ти сортира асоциативния масив по ключ, а си пропуснал да проверяваш дали масива с id съдържа вече това id, с функцията in_array():

<?php
$company = [];
while (($input = readline()) != "End") {
    $args = explode(" -> ", $input);
    $companyName = $args[0];
    $employeeID = $args[1];
    if (!key_exists($companyName, $company)) {
        $company[$companyName] = [];
    } elseif (in_array($employeeID, $company[$companyName])) {
        continue;
    }
    $company[$companyName][] = $employeeID;
}
ksort($company);
foreach ($company as $key => $value) {
    echo $key . PHP_EOL;
    foreach ($value as $id) {
        echo "-- " . $id . PHP_EOL;
    }
}

 
0
25/03/2019 19:05:59
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.