<?php
// Check if cat is set, if not use default value 0
$cat = isset($_GET['cat']) ? $_GET['cat'] : '0';
// First item level 1
$item_1 = array('58', '59', '60', '61', '66', '67', '68', '69', '70', '71', '75', '76', '77', '102');
// First item level 1, first item level 2
$item_1_1 = array('59', '66', '67', '68');
// First item level 1, second item level 2
$item_1_2 = array('60', '70', '71', '102', '69');
?>
<ul>
<!-- First item level 1 -->
<li>
<span <?php if( in_array($cat, $item_1) ) { echo "class='markerad'"; } ?>>Vattenmätare</span>
<?php if( in_array($cat, $item_1) ) { ?>
<ul>
<!-- First item level 1, first item level 2 -->
<li>
<span <?php if( in_array($cat, $item_1_1) ) { echo "class='markerad'"; } ?>>Lägenhetsmätare</span>
<?php if( in_array($cat, $item_1_1) ) { ?>
<ul>
<li <?php if( $cat == '67' ) { echo "class='markerad'"; } ?>>M-BUS radio</li>
<li <?php if( $cat == '68' ) { echo "class='markerad'"; } ?>>M-BUS trådad</li>
<li <?php if( $cat == '66' ) { echo "class='markerad'"; } ?>>Puls</li>
</ul>
<?php } // End if ?>
</li>
<!-- First item level 1, second item level 2 -->
<li>
<span <?php if( in_array($cat, $item_1_2) ) { echo "class='markerad'"; } ?>>Hushållsmätare</span>
<?php if( in_array($cat, $item_1_2) ) { ?>
<ul>
<li <?php if( $cat == '70' ) { echo "class='markerad'"; } ?>>M-BUS radio</li>
<li <?php if( $cat == '71' ) { echo "class='markerad'"; } ?>>M-BUS trådad</li>
<li <?php if( $cat == '102' ) { echo "class='markerad'"; } ?>>Med plusutgång</li>
<li <?php if( $cat == '69' ) { echo "class='markerad'"; } ?>>Utan kommunikation</li>
</ul>
<?php } // End if ?>
</li>
<!-- First item level 1, third item level 2 -->
<li>...</li>
</ul>
<?php } // End if ?>
</li>
<!-- Second item level 1 -->
<li>Värme/Kylmätare</li>
<!-- Third item level 1 -->
<li>Elmätare</li>
<!-- Fourth item level 1 -->
<li>...</li>
</ul>
Jag antar att kommentarerna ovan förklarar vad det är som händer i koden. Kortfattat så kollar jag med hjälp av PHP vad $_GET['cat'] har för värde och kollar sedan om värdet finns i de tre listorna som jag har skapat för det första menyvalet. Därefter så lägger jag till klassen markerad på rubriker som skall få blå bakgrund och/eller visar undermenyer till aktuellt menyval.