$file в вашем случае не массив, а объект SimpleXMLElement, он наполнен данными из xml файла, сам класс SimpleXMLElement имплементирует интерфейс
Traversable, что позволяет ему использоваться в цикле foreach, $el - также объект типа SimpleXMLElement, доступ к его полям можно получить напрямую, как тут $el->CharCode, это работает через магический метод __get(). __toString() - метод, который приводит объект SimpleXMLElement к строке.
Чтобы подробнее понять, как он работает и что есть внутри, загляните в класс SimpleXMLElement и посмотрите, что там есть, тогда станет понятнее.
Что касается кода, то можно записать как-то так:
$file = simplexml_load_file("http://www.cbr.ru/scripts/XML_daily.asp?date_req=" . date("d/m/Y"));
$values = [];
foreach ($file as $el) {
if ($el->CharCode == 'USD' || $el->CharCode == 'EUR') {
$values[$el->CharCode->__toString()] = $el->Value->__toString();
}
}
print_r($values);