Laravel получить значение атрибута на основе диапазона от JSON - PullRequest
0 голосов
/ 07 октября 2018

В структуре Laravel закодировано следующее:

QUERY

$shipping = DB::table('shipping')->where('country',$delivery->country)->first();
$data= json_decode(json_encode($shipping),true);

РЕЗУЛЬТАТ

array (
  'id' => 3,
  'carrier' => 'EN',
  'country' => 'AU',
  'rates_json' => '{"rates": [{"international": [{"zone4": [{"to_kg": "2", "total": "1", "from_kg": "1"}, {"to_kg": "4", "total": "2", "from_kg": "3"}]}]}]}',
)  

В базе данных MySQL я сохранил «rate_json» в столбце «JSON».Атрибут "from_kg" и "to_kg" является диапазоном.

Я намереваюсь получить сумму, если значение находится в диапазоне.Например, если значение 1,5 находится в диапазоне от 1 до 2, то итоговое значение равно 1.

Ваша помощь приветствуется.

Спасибо.

1 Ответ

0 голосов
/ 07 октября 2018

Поскольку ваш вопрос неясен,
Я могу только дать вам подсказку, что вы можете сделать.

foreach (json_decode($data['rates_json'])->rates as $rates) {
    foreach ($rates->international as $international) {
        foreach ($international->zone4 as $zone) {
            if ($zone->from_kg <= $zone->total &&  $zone->total <= $zone->to_kg) 
            {
                // do whatever you want here.
                dump($zone->total);
            }
        }
    }
}

Дайте мне знать о любых корректировках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...