$value) { if ($prefix_length == 0) { // don't just use $oid's length since it may be non-numeric $prefix_elements = count(explode('.',$oid)); $tmp = '.' . strtok($key, '.'); while ($prefix_elements > 1) { $tmp .= '.' . strtok('.'); $prefix_elements--; } $tmp .= '.'; $prefix_length = strlen($tmp); } $key = substr($key, $prefix_length); $index = explode('.', $key, 2); isset($retval[$index[1]]) or $retval[$index[1]] = array(); if ($largest < $index[0]) $largest = $index[0]; $retval[$index[1]][$index[0]] = $value; } if (count($retval) == 0) return ($retval); // no data // fill in holes and blanks the agent may "give" you foreach($retval as $k => $x) { for ($i = 1; $i <= $largest; $i++) { if (! isset($retval[$k][$i])) { $retval[$k][$i] = ''; } } ksort($retval[$k]); } return($retval); } print_r(snmptable("192.168.180.101", "HI-DUDE", "ipNetToMediaPhysAddress"));