Как вывести вместо author имя писателя?

0
<?php

$data = [
'authors' => [
        301 => [
            'id' => 301,
            'name' => 'Александр Сергеевич Пушкин',
            'email' => '[email protected]',
            'birthYear' => 1799,
        ],
        10 => [
            'id' => 10,
            'name' => 'Николай Васильевич Гоголь',
            'email' => '[email protected]',
            'birthYear' => 1809,
        ],
        17 => [
            'id' => 17,
            'name' => 'Михаил Юрьевич Лермонтов',
            'email' => '[email protected]',
            '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>';
array_map(function($e){
    echo sprintf('%s – %s – %s',$e['name'], $e['email'], $e['birthYear']) . '<br>';
}, $data['authors']);

echo '=== Книги ===<br>';
array_map(function($e){
    echo sprintf('%s – %s – %s',$e['title'], $e['publishedAt'], $e['author']) . '<br>';
}, $data['books']);



?>
php

2 ответов

0

Примерно такой код должен получиться:

<?php

$data = [
'authors' => [
        301 => [
            'id' => 301,
            'name' => 'Александр Сергеевич Пушкин',
            'email' => '[email protected]',
            'birthYear' => 1799,
        ],
        10 => [
            'id' => 10,
            'name' => 'Николай Васильевич Гоголь',
            'email' => '[email protected]',
            'birthYear' => 1809,
        ],
        17 => [
            'id' => 17,
            'name' => 'Михаил Юрьевич Лермонтов',
            'email' => '[email protected]',
            '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 $item) {
	echo $item['name'].' - '.$item['email'].' - '.$item['birthYear'].'<br>';
}
echo "<br><br>";
echo '=== Книги ===<br>';
foreach($data['books'] as $item) {
	echo $item['title'].' - '.$item['publishedAt'].' - '. $data['authors'][$item['author']]['name'].'<br>';
}

?>

Вывод будет таким в браузере:

=== Авторы ===
Александр Сергеевич Пушкин - [email protected] - 1799
Николай Васильевич Гоголь - [email protected] - 1809
Михаил Юрьевич Лермонтов - [email protected] - 1814


=== Книги ===
Евгений Онегин - 1823—1832 - Александр Сергеевич Пушкин
Полтава - 1828—1829 - Александр Сергеевич Пушкин
Мёртвые души - 1842 - Николай Васильевич Гоголь
Сказка о рыбаке и рыбке - 1833 - Александр Сергеевич Пушкин

Обрати внимание на эту запись:

$data['authors'][$item['author']]['name']
0

Огромное спасибо!!!!

Sign up or Log in to write an answer