Спокойной ночи.
Я пытаюсь получить доступ ко всем значениям availableForExchange при возврате страницы ниже:
[
{
"code":"18707498",
"date":"2019-01-23T16:58:01",
"totalPriceInCents":14450,
"orderTotalPriceInCents":14450,
"status":"PGTO_NAO_CONFIRMADO",
"availableForExchange":false,
"paymentType":"CREDIT_CARD",
"installmentValueInCents":7225,
"installmentsNumber":2,
"paymentSummaries":[
{
"paymentType":"CREDIT_CARD",
"installmentsNumber":2,
"installmentValueInCents":7225,
"valueInCents":14450
}
],
"hasGiftCard":false
},
{
"code":"019741817156",
"date":"2017-06-11T19:09:06",
"totalPriceInCents":19110,
"orderTotalPriceInCents":19110,
"status":"ENTREGA_EFETUADA",
"availableForExchange":false,
"paymentType":"CREDIT_CARD",
"installmentValueInCents":9555,
"installmentsNumber":2,
"paymentSummaries":[
{
"paymentType":"CREDIT_CARD",
"installmentsNumber":2,
"installmentValueInCents":9555,
"valueInCents":19110
}
],
"hasGiftCard":false
}
]
Я уже пробовал следующие способы:
$data = curl_exec($ch);
$json = json_decode($data, true);
$str = $json['availableForExchange'];
print_r($str);
Мне нужно получить доступ ко всем значениям: availableForExchange, найти истинные значения и подсчитать (если это правда),
и сохранить в переменную.






что вы хотите сделать, так это отфильтровать $json (это массив)
$found = array_filter($json, function($entry) { return $entry['availableForExchange']; });
echo 'Entries: '.count($found);
print_r($found);
Используя array_column для прямого доступа к значениям availableForExchange, вы можете использовать array_filter без обратного вызова (поскольку значения в этом столбце являются логическими):
$json = json_decode($data, true);
$available = count(array_filter(array_column($json, 'availableForExchange')));
echo "$available available for exchange\n";
Вывод (для ваших образцов данных)
0 available for exchange