php - How to render a pyramide with each row by level property? -
array ( array( ['name'] => 'test1', ['level'] => 1 }, array( ['name'] => 'test2', ['level'] => 2 }, array( ['name'] => 'test3', ['level'] => 2 }, array( ['name'] => 'test4', ['level'] => 3 }, array( ['name'] => 'test5', ['level'] => 3 }, array( ['name'] => 'test6', ['level'] => 3 }, array( ['name'] => 'test7', ['level'] => 3 }, )
i have array of arrays sorted level, want make this:
________ | | | test1 | |________| ________ ________ | | | | | test2 | | test3 | |________| |________| ________ ________ ________ ________ | | | | | | | | | test4 | | test5 | | test6 | | test7 | |________| |________| |________| |________|
render them pyramide each row level, first how render using recursion or using while loop? make each level wrapped <ul>
, nodes <li>
i'am trying render loop, don't know how, logic?:
while ($item = $this->dbtree->nextrow()) { $rows[] = (object)$item; } print_r($res); // list of arrays above exit;
thanks attention
you can first iterate on array , sort them in levels in application logic:
foreach ($res $resvalue){ if (!isset($levelsorted[$resvalue['level'])){ $levelsorted[$resvalue['level'] = array(); } $levelsorted[$resvalue['level'][] = $resvalue; }
in view can this:
foreach ($levelsorted $level => $levelres){ echo '<ul id="level' . $level . '">'; foreach ($levelres $singleres){ echo '<li>' . $singleres['name'] . '</li>'; } echo '</ul>'; }
at end, have more 1 loop, consistent mvc pattern.
Comments
Post a Comment