Я не уверен, что следил за проблемой здесь.Почему бы не использовать следующее?
$magazines = array(
array( // a single magazine
'title' => 'Issue 1',
'articles' => array( // a list of articles
array( // a single article
title => 'Article 1',
content => 'xyz'
)
)
),
);
Редактировать: Исправлена небольшая ошибка:)
Если вы хотите сделать это более читабельным образом, вы можете сделать:
function Magazines(){
return func_get_args();
}
function Magazine($title,$articles){
return array(
'title' => $title,
'articles' => $articles
);
}
function Articles(){
return func_get_args();
}
function Article($title,$content){
return array(
'title' => $title,
'content' => $content
);
}
// and using it...
$magazines = Magazines(Magazine('Issue 1',Articles(Article('Article 1','xyz'))));
Он просто заменяет array()
на хорошее именование.Вы можете легко преобразовать это (или что-то подобное) в ООП.В конце концов, ООП предназначен только для управления предметами.Фактическим хранилищем всегда является массив.
Обход
Считывание массива на самом деле довольно просто, если вы имеете правильную структуру:
foreach($magazines as $magazine){
// user things like $magazine['title'] in here...
foreach($magazine['articles'] as $article){
// user $article['title'] here
}
}
Это 6 строк чистого кода.