2017-01-19 3 views
1

я получил массив как этотПоиск в массиве возвращают неверный результат

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. В чем проблема?

+0

Не должно быть '$ price = $ match ['value']'? –

+0

'$ match ['value']' return 'NULL' – VLS

+0

Каков ваш заказ? –

ответ

1

Попробуйте вот так. Он будет искать и сопоставлять в массиве с помощью функции in_array

$match = true; 

foreach ($totala['income'] as $data) { 

    if (in_array($order->address, $data['addresses'])) { 
      $match = $data; 
      break; 
    }       

}      
$price = $match['value']; 
Смежные вопросы