Родительский элемент PHP / Guzzle Target - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть приложение, использующее guzzle / php для отправки запросов в службу отдыха.

Когда он выдает ответ, он включает вложенные массивы и объекты:

[exampleBalances] => Массив (
[0] => Объект stdClass (
[баланс] => 6
[name] => Первая премия
[priCode] => 38
)
[1] => Объект stdClass (
[баланс] => 5
[name] => Вторая премия
[priCode] => 20
)
[2] => Объект stdClass (
[баланс] => 4
[name] => Четвертая премия
[priCode] => 39
)
)

До сих пор я извлекал значение на основе заказа:

$ prizThree = $ response-> exampleBalances ['3'] -> balance;

Однако, сервис не будет отображать «призы», если у клиента 0, поэтому приведенный выше пример больше не будет точным, если был добавлен новый элемент:

[exampleBalances] => Массив (
[0] => Объект stdClass (
[баланс] => 6
[name] => Первая премия
[priCode] => 38
)
[1] => Объект stdClass (
[баланс] => 5
[name] => Вторая премия
[priCode] => 20
)
[2] => Объект stdClass (
[баланс] => 8
[name] => Три премии
[priCode] => 54
)
[3] => Объект stdClass (
[баланс] => 4
[name] => Четвертый приз
[priCode] => 39
)
)

Есть ли способ указать целевой элемент, не используя порядок, в котором он указан в ответе?

Я не смог найти какую-либо документацию, но проблему трудно передать. Я думал, что может быть какое-то время создать условие для проверки внутренних значений элементов (предпочтительно «код приза»). Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 27 апреля 2018

В PHP 5.5.0 или новее, вы можете использовать функцию array_column () для этого поиска:

$index = array_search($prizeCodeSearch, array_column($exampleBalances, 'prizeCode'));
$element = $exampleBalances[$index];
...