php - 如何从 JSON 数组中读取值?
问题描述
在我的数据库中,我有 column items
,在这个 coluln 中我有值:
[{"id":588,"user_id":1,"item_id":801,"created_at":"2020-12-16T11:55:40.000000Z","updated_at":"2020-12-16T11:55:40.000000Z","item":{"id":801,"market_hash_name":"Blackshield Protodrone Armor","image":"-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KW1Zwwo4NUX4oFJZEHLbXK9QlSPcUmoBVWSV6fSuGu387sW1JmKwFDiamtJBJs1_baPjBH79S3q4iEhfnxJ4TCnmRE5MF0mNbN9J7yjRrnrkNqNjr7IICSIFVsaVzYr1O4kOq915O16pyfm3Bi6SVzt3nYnUC0n1gSOXdKDzqL","exterior":"Mythical","rarity":"Mythical","color":"D2D2D2","is_stattrak":0,"price":1.3,"created_at":null,"updated_at":"2020-12-16T19:45:02.000000Z"}}]
我需要取值item_id
,我试着让它像:
<td>{{ $bet->items[item_id] }}</td>
但我收到错误:使用未定义的常量 item_id - 假定为“item_id”(这将在 PHP 的未来版本中引发错误)
如果尝试:
<td>{{ $bet->items['item_id'] }}</td>
我收到:非法字符串偏移 'item_id'
或者如果尝试:
<td>{{ $bet->items["item_id"] }}</td>
我收到了同样的错误:非法字符串偏移 'item_id'
我在控制器的完整代码:
$bets = Bet::query()->where('user_id', $user->id)->orderBy('id', 'asc')->get();
foreach ($bets as $bet) {
$profit += round($bet->win - $bet->bank, 2);
}
在视图:
@foreach($bets as $bet)
<tr>
<td>#{{ $bet->id }}</td>
<td>#{{ $bet->game_id }}</td>
<td>{{ round($bet->bank, 2) }} $</td>
<td>{{ round($bet->win, 2) }} $</td>
<td>{{ round($bet->multiplier, 2) }}x</td>
<td>{{ round($bet->auto_withdraw, 2) }}x</td>
<td>{{ $bet->items["item_id"] }}</td>
<td>{{ $bet->created_at }}</td>
</tr>
@endforeach
我该如何解决?
解决方案
你有两个选择。首先:将您的 json 转换为数组并像这样访问它:
$items_array = json_decode($bet->items,true);
$item_id = $items_array[0]['item_id'];
第二,或者你可以像对象一样做:
$items_object = json_decode($bet->items);
$item_id = $items_array[0]->item_id;
推荐阅读
- sass - 编辑 SASS 文件 (.SCSS)
- swift - 从 SceneDelegate.swift 打开特定的 UITabBarController / ViewController
- javascript - 触发 on-change 事件时调用函数时出错
- javascript - 使用 ES6 类 javaScript 实现 Trie
- wordpress - 将 do_shortcode() 与联系表格 7 一起使用并且缺少表格标签
- multithreading - 为 WebAssembly 模块重新分配 imports.env.memory 不会取代堆
- python - 如何在 mac 终端上使用突出显示的数据框运行 pandas styler
- excel - 如何将用户表单变量与维度变量进行比较?
- node.js - POST 获取交易令牌时收到 400 错误请求
- pdf - 从不同格式的 pdf 发票中提取数据