{
"accounts": [
{
"alias": "mc_beeline_rub",
"fsAlias": "qb_mc_beeline",
"bankAlias": "QIWI",
"title": "MC",
"type": {
"id": "MC",
"title": "Счет мобильного кошелька"
},
"hasBalance": false,
"balance": null,
"currency": 643
},
{
"alias": "qw_wallet_rub",
"fsAlias": "qb_wallet",
"bankAlias": "QIWI",
"title": "WALLET",
"type": {
"id": "WALLET",
"title": "QIWI Wallet"
},
"hasBalance": true,
"balance": {
"amount": 8.74,
"currency": 643
},
"currency": 643
}
]
}
$balance = function($alias) use ($json) {
$Array = json_decode($json, true)["accounts"];
$key = array_search($alias, array_column($Array, "alias"));
return $key && isset($Array[$key]["balance"]["amount"])?$Array[$key]["balance"]["amount"]:null;
};
var_dump($balance("qw_wallet_rub"));
var_dump($balance("mc_beeline_rub"));
$arr = \json_decode($a, true);
$reducer = function ($carry, $item): float {
if ('qw_wallet_rub' === $item['alias'] ?? null) {
return $carry + $item['balance']['amount'] ?? 0.0;
}
return (float)$carry;
};
$result = \array_reduce($arr['accounts'], $reducer);