Я получил массив, как это
Array
(
[hash] => 9761d3233f9cb256c0992be
[total] => 2736712601
[received] => 2017-01-13T21:43:32.047Z
[income] => Array
(
[0] => Array
(
[value] => 647262
[addresses] => Array
(
[0] => Address_1
)
)
[1] => Array
(
[value] => 17200000
[addresses] => Array
(
[0] => Address_2
)
)
[2] => Array
(
[value] => 3729034
[addresses] => Array
(
[0] => Address_3
)
)
[3] => Array
(
[value] => 2414997500
[addresses] => Array
(
[0] => Address_4
)
)
[4] => Array
(
[value] => 10856454
[addresses] => Array
(
[0] => Address_5
)
)
)
)
Таким образом, в моей базе данных я храню хэш (9761d3233f9cb256c0992be
). Я хеш и адрес. Затем, основываясь на них, я сопоставляю правильный массив из [income]
, Когда я нашел правильный адрес в income
я возьму [value]
и показывая это на странице. Вот как я это сделал
$url=get_curl_content("https://example.com/".$order->hash);
$totala =json_decode($url,true);
....
$match = true;
foreach ($totala['income'] as $data) {
if ($data['addresses'] == $order->address) {
$match = $data;
break;
}
}
$price = $data['value'];
Проблема в том, что я ожидаю Address_2
потому что в базе данных я сохранил Address_2
у меня есть Address_3
вместо.
Когда я var_dump($data['addresses'])
я получил Address_3
, В чем может быть проблема?
Попробуй вот так. Он будет искать и сопоставлять в массиве, используя in_array функция
$match = true;
foreach ($totala['income'] as $data) {
if (in_array($order->address, $data['addresses'])) {
$match = $data;
break;
}
}
$price = $match['value'];
Других решений пока нет …