@Artemka1903

Как достать имя из массива по id?

Дан массив $data в нем ассоциативные массивы. Нужно вывести авторов из подмасива книги. Там они обозначены под номерами, а нужно вывести полностью имя. как это сделать не используя функции, анонимные функции, преобразование типов, классы, базу данных, другие переменные, кроме $data.?
$data = [
    'authors' => [
        301 => [
            'id' => 301,
            'name' => 'Александр Сергеевич Пушкин',
            'email' => 'alexander_pushkin@example.com',
            'birthYear' => 1799,
        ],
        10 => [
            'id' => 10,
            'name' => 'Николай Васильевич Гоголь',
            'email' => 'nikolay_gogol@example.com',
            'birthYear' => 1809,
        ],
        17 => [
            'id' => 17,
            'name' => 'Михаил Юрьевич Лермонтов',
            'email' => 'mikhail_lermontov@example.com',
            'birthYear' => 1814,
        ],
    ],
    'books' => [
        [
            'title' => 'Евгений Онегин',
            'publishedAt' => '1823—1832',
            'author' => 301,
        ],
        [
            'title' => 'Полтава',
            'publishedAt' => '1828—1829',
            'author' => 301,
        ],
        [
            'title' => 'Мёртвые души',
            'publishedAt' => '1842',
            'author' => 10,
        ],
        [
            'title' => 'Сказка о рыбаке и рыбке',
            'publishedAt' => '1833',
            'author' => 301,

        ],
    ],
];

/* ===== Ваш код ниже ===== */

echo '=== Авторы ===<br>';
foreach ($data['authors'] as $author) {
    echo $author['name']. ' - ' .$author['email']. ' - ' .$author['birthYear']. '<br>';
};

echo '=== Книги ===<br>';
foreach ($data['books'] as $book) {
    echo $book['title']. ' - ' .$book['author']. ' - ' .$book['publishedAt']. '<br>';
};


Тоесть при выводе "КНИГИ" он берет id автора, а нужно полностью имя. Буду благодарен за помощь
  • Вопрос задан
  • 168 просмотров
Решения вопроса 1
maddog670
@maddog670
foreach ($data['books'] as $book) {
    echo $book['title']. ' - ' .$data['authors'][$book['author']]['name']. ' - ' .$book['publishedAt']. '<br>';
};
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы