使用PHP获取错误的数组格式

时间:2018-03-09 06:45:24

标签: php arrays

我试图使用PHP从JSON数组中选择一个随机数据,但在获得结果后会出现错误的格式。我在解释下面的代码。

<?php
function array_random_assoc($arr, $num = 1) {
    $keys = array_keys($arr);
    shuffle($keys);

    $r = array();
    for ($i = 0; $i < $num; $i++) {
        $r[$keys[$i]] = $arr[$keys[$i]];
    }
    return $r;
}
$arr=array(array("id"=>2,"title"=>"hello"),array("id"=>3,"title"=>"hel"),array("id"=>4,"title"=>"hell"),array("id"=>5,"title"=>"helloddd"));
$result=array_random_assoc($arr);
echo json_encode($result);
//print_r(array_random_assoc($arr));
?>

这里我得到以下类型的结果。

{"2":{"id":4,"title":"hell"}}

这里我的要求是从现有数组中选择一组随机数据,预期输出应如下所示。

[{"id":4,"title":"hell"}]

对于每次函数调用,将从该数组中随机选取值。

1 个答案:

答案 0 :(得分:4)

然后简单地替换这一行:

$r[$keys[$i]] = $arr[$keys[$i]];

$r[] = $arr[$keys[$i]];

您正在获取该格式,因为您已将键分配给数组,只需删除该分配。