PDO valores duplicados en matriz

Necesito obtener algunos identificadores de moneda de db, este es mi código

$arr = [];

$currency_codes = array("USD", "RUB");
$currency_codes_in = implode(',', array_fill(0, count($currency_codes), '?'));
$query = "SELECT `curr_id` FROM `dictionary_currency` WHERE `curr_code` IN (". $currency_codes_in .")";
$stmt = $db->prepare($query); 
foreach ($currency_codes as $k => $id) {
    $stmt->bindValue(($k+1), $id);
}

$stmt->execute();
$currencies = $stmt->fetchAll();

foreach($currencies as $currency)
{
    foreach($currency as $key => $value)
    {
        $arr[] = $value;
    }
}
print_r(,$arr);
exit();

esto es$currencies formación

Array
(
    [0] => Array
        (
            [curr_id] => 643
            [0] => 643
            [curr_code] => RUB
            [1] => RUB
        )

    [1] => Array
        (
            [curr_id] => 840
            [0] => 840
            [curr_code] => USD
            [1] => USD
        )

)

y esto es$arr

Array
(
    [0] => 643
    [1] => 643
    [2] => 840
    [3] => 840
)

No entiendo por qué obtengo valores duplicados en las matrices y cómo evitarlo.

Respuestas a la pregunta(4)

Su respuesta a la pregunta