How to do i disable a row.operator in my custom panel by detecting if there is a specific modifier type and name is present or not?
It is not the panel's job to decide if a button is enabled/disabled, the operator is responsible for deciding if it is able to be run with the current selection. The poll method of the operator class is used to determine if the operator can be run, if the poll method returns False then it's button will be disabled in your panel.

class myOperator(bpy.types.Operator):
    bl_idname = 'object.testing'
    bl_label = 'Simple test setup'

    @classmethod
    def poll(cls, context):
        mod_types = set()
        for o in context.selected_objects:
            for m in o.modifiers:
                mod_types.add(m.type)
        return 'ARRAY' in mod_types

    def execute(self, context):
        # do stuff
        return {'FINISHED'}


A panel can look through the context and adjust it's content based on the current selection, note that it is altering it's content and not disabling an item.

class samplePanel(bpy.types.Panel):
    bl_idname = "OBJECT_PT_example"
    bl_label = "Dynamic content"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'

    def draw(self, context):
        mod_types = set()
        for o in context.selected_objects:
            for m in o.modifiers:
                mod_types.add(m.type)
        row = self.layout.row()
        if 'ARRAY' in mod_types:
            row.label(text='there is an array modifier')
        else:
            row.label(text='No object using an array')