wp_query show all values

The example below just changes what args is based on your 3 input fields. This eliminates the need to check for these values (and using “all” for value). I’m sure some combination of logical operators for compare and relation would do the job but this works too.

if (isset($_GET['front-side-prop-search'])){

 // test whether $city has a selected value, if so then args below: 

 // $city and $type selected

$args = array(
    'posts_per_page' => 9,
    'post_type'     => 'property',
    'meta_query'    =>  array(
        'relation '     => 'AND',
        array(
            'key'       => 'prop_city',
            'value' => $city,
            'compare'       => '=',
                'meta_query'    =>  array(
                'relation '  => 'OR',
                    array(
                        'key'       => 'prop_city',
                        'value'     => 'All',
                        'compare'   => 'NOT LIKE',
                    ),
                ),
            ),
        array(
            'key'       => 'prop_type',
            'value' => $type,
            'compare'       => '='
        )
    ),
  );


// $city and $rooms

$args = array(
    'posts_per_page' => 9,
    'post_type'     => 'property',
    'meta_query'    =>  array(
        'relation '     => 'AND',
        array(
            'key'       => 'prop_city',
            'value' => $city,
            'compare'       => '=',
                'meta_query'    =>  array(
                'relation '  => 'OR',
                    array(
                        'key'       => 'prop_city',
                        'value'     => 'All',
                        'compare'   => 'NOT LIKE',
                    ),
                ),
            ),
        array(
            'key'       => 'prop_rooms',
            'value' => $rooms,
            'compare'       => '='
        ),

    ),
);

// etc
};