首页 > 解决方案 > 使用 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) 也只是给了我同一个数组的索引,因为只有一个。

我如何进入电影数组以便随机抓取一部?

感谢您的任何建议。

标签: phpjsonparsingassociative-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',
)

推荐阅读