In_array不能使用$ term_id

I am making a code that grab a url part, take values and then set on list.

Problem is on list

if (in_array($term->term_id, $regions)) {
    $selected_region = 'selected';
}
else {
$selected_region = 'not';
}

This code does work, always return not.

if ($term->term_id == 2) {
$selected_region = 'varbut?';
}

This work.

$regions is variable and return this:

array(2) { [0]=> string(2) "17" [1]=> string(1) "2" } 

Where is the problem to use $term_id?

$term_id with var_dump returns int(17) int(2)

On other pages, single page with only one term is working and code is this:

    <?php 
    $id = get_the_ID();
    $postterms = wp_get_post_terms($id, 'destinations');   // get post terms
    $parentId = $postterms[0]->term_id;   // get parent term ID
    ?>
    <?php if (!in_array($parentId, $regions)): ?>

Why is not working on that selected function? int and string values?

Here is a full term get code:

$custom_terms = get_terms(array($taxonomies), $args);
foreach($custom_terms as $term){
    if (in_array($term->term_id, $regions)) {
        $selected_region = 'selected';
    }
    else {
        $selected_region = 'not';
    }
    if ($term->term_id == 2) {
        $selected_region = 'varbut?';
    }
    echo $selected_region;

    var_dump($term->term_id);

}

}

It's like you said;

$regions : array(2) { [0]=> string(2) "17" [1]=> string(1) "2" } 
$term->term_id : int(2)

How about converting your $regions to ints?