php - 使用 PHP 从 JSON 字典中的关联数组中提取随机元素
问题描述
我有一些看起来像这样的 JSON:
$str = '{"movies":[{"id":"11007","title":"粉红豹"},{"id":"11118","Breathless"]}';
这似乎是一个字典{}
,其键"movies"
和值是一个电影项目数组[]
。
将其解码为关联数组后:
$array = json_decode($str, true);
看起来像:
Array ( [movies] => Array ( [0] => Array ( [id] => 11007 [title] => The Pink Panther) [1] => Array ( [id] => 11118 [title] => Breathless ) ) )
如何获取随机电影,例如 The Pink Panther 并访问其标题和 ID?
array['movies'] 似乎只是给了我数组本身,而 array_rand($array) 也只是给了我同一个数组的索引,因为只有一个。
我如何进入电影数组以便随机抓取一部?
感谢您的任何建议。
解决方案
获取所需数组的随机索引,然后分配。(此处为 Json 更正)
<?php
$json =
'{
"movies":
[
{"id":"11007","title":"The Pink Panther"},
{"id":"11118","title":"Breathless"}
]
}';
$data = json_decode($json, true);
$rand_idx = array_rand($data['movies']);
$random_movie = $data['movies'][$rand_idx];
var_export($random_movie);
示例输出:
array (
'id' => '11118',
'title' => 'Breathless',
)
推荐阅读
- excel - 连接字符串而不是替换
- java - 动画后显示元素
- python - 在python中使用带有组的正则表达式从字符串中解析参数
- javascript - 为什么javascript捕获的异常是空对象
- curl - curl:(35)错误:1407742E:SSL例程:SSL23_GET_SERVER_HELLO:tlsv1警报协议版本
- elasticsearch - 我想从嵌套 JSON 数据中获取所有实体,其中“ai_id”的值 = 0
- javascript - 如何使 5 个按钮的活动和非活动 onclick
- asp.net-core - 自托管 ASP.NET Core 应用程序不适用于 SSL
- mysql - 使用类似的 MySQL 表,但对于一列的不同 varchar 大小以节省 DB 大小,通过 UNION 查询
- matlab - MATLAB 等高线图可以看起来像 Mathematica 中的吗?