Задача тривиальная, если с решением туго - у меня для вас плохие новости.
<?php
$data = array(
'books' => [],
'authors' => []
);
function addAuthor($name, $email, $db){
global $data;
$data['authors'][] = array('name' => $name, 'email' => $email, 'db' => $db);
};
function addBook($title, $authorId, $year){
global $data;
$data['books'][] = array('title' => $title, 'author' => &$data['authors'][$authorId], 'year' => $year);
};
addAuthor('Пушкин', 'почта@пушкина', '1799'); // id = 0
addAuthor('Гоголь', 'почта@гоголя', '1809'); // id = 1
addBook('Вий', 1, 1834);
addBook('Другая книга Гоголя', 1, 1835);
addBook('А эту написал Пушкин', 0, 1820);
echo "===========Книги===============";
foreach($data['books'] as $book){
echo $book['title'].' - '.$book['author']['name'].' - '.$book['year'].'<br>';
}
echo '===========Авторы===============';
foreach($data['authors'] as $authors){
echo $authors['name'].' - '.$authors['email'].' - '.$authors['db'].'<br>';
}