$val) { $kv .= self::packUint16($key) . self::packUint32($val); } return self::packUint16(count($arr)) . $kv; } public static function unpackMapUint32(&$data) { $len = self::unpackUint16($data); $arr = []; for ($i = 0; $i < $len; $i++) { $arr[self::unpackUint16($data)] = self::unpackUint32($data); } return $arr; } }