\w+)\[(?P\d+)]\[(?P[\w:-]+)]\s(?P\d+)~', $fdbPort_entry, $matches); if (!empty($matches)) { $port = $matches['port']; $mac = $matches['mac']; $vlan = $matches['vlan']; $vlan_id = $vlans_dict[$vlan]; echo " $vlan"; if (!empty($mac)) { list($oct_1, $oct_2, $oct_3, $oct_4, $oct_5, $oct_6) = explode(':', $mac); $mac_address = zeropad($oct_1) . zeropad($oct_2) . zeropad($oct_3) . zeropad($oct_4) . zeropad($oct_5) . zeropad($oct_6); if (strlen($mac_address) != 12) { echo 'Mac Address padding failed'; continue; } else { $dot1dBasePort = $port; $insert[$vlan_id][$mac_address]['port_id'] = $portid_dict[$dot1dBasePort]; d_echo("vlan $vlan mac $mac_address port ($port) " . $portid_dict[$dot1dBasePort] . PHP_EOL); } } // end if on empty mac } // end if on matches } // end loop on fdbPort_entry echo PHP_EOL;