array opbouwen met meerdere foreach in elkaar

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jeroen G

Jeroen G

06/12/2011 13:30:21
Quote Anchor link
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;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?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);

?>
Gewijzigd op 06/12/2011 13:42:45 door Jeroen G
 
Er zijn nog geen reacties op dit bericht.



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.