Ik ben bezig met een stukje code waarmee ik een array samenstel vanuit de database. Nu heb ik een stukje code wat opzich prima functioneerd. Alleen het klopt niet voor mijn gevoel, volgens mij kan dit veel efficienter. Heeft er iemand suggesties/tips?

Alvast bedankt;

De data structuur;
> page
--> meta (array)
--> row
----> column
------> content (array)
--> row
----> column
------> content (array)
--> row
----> column
------> content (array)
etc, etc, etc


De php code;
<?php
$page = Page::find($id); // SELECT * FROM "pages" WHERE "id" = $id

$rows = Page::find($id)->rows()->get(); // SELECT * FROM "rows" WHERE "page_id" = $id

$result['meta'] = (array) $page;

foreach ($rows as $row_key => $row_value) {

$result['rows'][$row_key] = (array) $row_value;

$columns = Row::find($row_key)->columns()->get(); // SELECT * FROM "columns" WHERE "row_id" = $row_key

foreach ($columns as $column_key => $column_value) {

$result['rows'][$row_key]['columns'][] = (array) $column_value;

$contents = Column::find($column_key)->contents()->get(); // SELECT * FROM "contents" WHERE "column_id" = $column_key

foreach ($contents as $content_key => $content_value) {

$result['rows'][$row_key]['columns'][$row_key]['content'][] = (array) $content_value;

}

}

}

var_dump($result);

?>

Reageren