Задать вопрос
@newked

Как найти значение в ассоциативном массиве?

Ниже приведен код моей xml-ки. Мне надо получить значение 1090 опираясь RUB.

["product"]=>
  object(SimpleXMLElement)#7567 (39) {
    ["section_id"]=>
    string(5) "22304"
    ["pwyw"]=>
    string(1) "0"
    ["prices"]=>
    object(SimpleXMLElement)#7168 (2) {
      ["default"]=>
      object(SimpleXMLElement)#5681 (1) {
        ["price"]=>
        array(6) {
          [0]=>
          object(SimpleXMLElement)#5688 (2) {
            ["currency"]=>
            string(3) "RUB"
            ["price"]=>
            string(4) "1090"
          }
          [1]=>
          object(SimpleXMLElement)#5687 (2) {
            ["currency"]=>
            string(3) "USD"
            ["price"]=>
            string(5) "15.76"
          }
        }
      }
    }
}


Как можно это сделать?
Я попытался сделать вот так:

$price = $xml->product->prices->default->price->xpath('price[@currency="RUB"]');


Но это не работает. Подскажите пожалуйста, как получить нужно мне значение?

Я понимаю что "$xml->product->prices->default->price" - это массив. Так вот хочется что-то на подобии как в js воспользоваться filter() но только надо на PHP. Ну или другое какое-то элегантное, красивое решени. )) Заранее спасибо каждому )
  • Вопрос задан
  • 15 просмотров
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@rPman
Используешь xpath, это мощнейший инструмент работы с xml, считай regexp но в мире xml, так и пиши сразу
$xml->xpath("//prices/default/price[currency='{$currency}']/price");


{$currency} это наименование валюты в currency, можно прямо константой написать или в моем примере брать из переменной
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы