Как правильно прописать функцию при выводе в ассоциативном массиве xpath запроса?
Чтобы получить единичное значение после xpath-запроса, вам надо использовать метод item().
То есть, условно:$prices_value = $xpath->query("//div/span[2]");
if($prices_value !== FALSE && $prices_value->length > 0)
   echo $prices_value->item(0)->nodeValue; // тут ваше значение
Без использования item() вы можете обходиться только если итерируете результаты query(), например:$prices_value = $xpath->query('//div/span');
if($prices_value !== FALSE && $prices_value->length > 0)
{
   foreach($items as $item)
      echo $item->nodeValue;
}
И это уже немного за рамками вашего вопроса, но я бы рекомендовал сократить xpath-выражения в query(). Я понимаю, что вы их скопировали из Firebug или другой вед-дев тулзы, но в вашем случае минимальное изменение верстки донора приведет к отказу работы ваших xpath-запросов.
Заменить$value->nodeValue
на$value->item(0)->nodeValue