On 6/22/2011 3:43 PM, Adam Preece wrote: > Hi Gang! > > i have 2 assoc arrays from 2 querys, > > first one is page categorys it consists of: > id > name > > second is pages > name > cat_id > > now, i am using smarty, so i pass arrays into the view. this i would like to pass to the view and display within a html select element. > > <select id="name"> > <option value="CAT_ID">CAT NAME > <option disabled="disabled">PAGE NAME ASSOCIATED TO THE CAT NAME</option> > </option> > </select> > > and i cannot think of how i can structure an array to pass in to achieve this and/or is it even possible :-/. > > i hope this makes sense. > > i'm truly stuck! > > kind regards > > Adam Preece > I see that you have a nested <option ...> tag. Maybe you are looking for the <optgroup> tag. <select> <optgroup label="Swedish Cars"> <option value="volvo">Volvo</option> <option value="saab">Saab</option> </optgroup> <optgroup label="German Cars"> <option value="mercedes">Mercedes</option> <option value="audi">Audi</option> </optgroup> </select> <?php $categories[] = array('id' => 1, 'name' => 'cars'); $categories[] = array('id' => 2, 'name' => 'trucks'); $categories[] = array('id' => 3, 'name' => 'motorcycles'); $pages[] = array('id' => 1, 'name' => 'Neon', 'cat_id' => 1); $pages[] = array('id' => 2, 'name' => 'Saturn', 'cat_id' => 1); $pages[] = array('id' => 3, 'name' => 'F150', 'cat_id' => 2); $pages[] = array('id' => 4, 'name' => 'Ram 2500', 'cat_id' => 2); $pages[] = array('id' => 5, 'name' => 'Suzuki', 'cat_id' => 2); $pages[] = array('id' => 6, 'name' => 'Honda', 'cat_id' => 3); echo "<select id=\"page_id\">\n"; foreach ($categories AS $cat) { $c_cat_name = htmlspecialchars($cat['name']); echo "\t<optgroup label=\"{$c_cat_name}\">\n"; foreach ($pages AS $page) { if ( $page['cat_id'] == $cat['id'] ) { $c_page_id = htmlspecialchars((int)$page['id']); $c_page_name = htmlspecialchars($page['name']); echo "\t\t<option value=\"{$c_page_id}\">{$c_page_name}</option>\n"; } } # Reset pages so you can loop through it again reset($pages); echo "\t</optgroup>\n"; } echo "</select>\n"; ?> All the above is untested, but should get you very close to what I think you are trying to accomplish. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php