我试图使用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"}]
对于每次函数调用,将从该数组中随机选取值。
答案 0 :(得分:4)
然后简单地替换这一行:
$r[$keys[$i]] = $arr[$keys[$i]];
与
$r[] = $arr[$keys[$i]];
您正在获取该格式,因为您已将键分配给数组,只需删除该分配。