Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从关联数组中选择2个随机元素_Php_Arrays_Random - Fatal编程技术网

Php 从关联数组中选择2个随机元素

Php 从关联数组中选择2个随机元素,php,arrays,random,Php,Arrays,Random,所以我有一个关联数组,我想从中返回2个随机值。 这段代码只返回1个数组值,这是4个随机数中的任意一个 $array = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4); $key = array_rand($array); //array_rand($array,2); Putting 2 returns Illegal offset type $value = $array[$key]; print_r($value); //

所以我有一个关联数组,我想从中返回2个随机值。 这段代码只返回1个数组值,这是4个随机数中的任意一个

$array = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4);
$key = array_rand($array); //array_rand($array,2); Putting 2 returns Illegal offset type
$value = $array[$key];
print_r($value); //prints a single random value (ex. 3)

如何仅从数组值返回两个逗号分隔的值?类似于3,4的内容?

使用从数组中抓取关键帧,使用将关键帧混洗,然后打印出与混洗关键帧数组中前两个关键帧对应的值,如下所示:

$array = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4);
$keys = array_keys( $array);
shuffle( $keys);
echo $array[ $keys[0] ] . ',' . $array[ $keys[1] ];
$array = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4);
$keys = array_rand( $array, 2);
echo $array[ $keys[0] ] . ',' . $array[ $keys[1] ];

或者,可以使用的第二个参数抓取两个键,如下所示:

$array = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4);
$keys = array_keys( $array);
shuffle( $keys);
echo $array[ $keys[0] ] . ',' . $array[ $keys[1] ];
$array = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4);
$keys = array_rand( $array, 2);
echo $array[ $keys[0] ] . ',' . $array[ $keys[1] ];

用从数组中抓取键,用洗牌键洗牌,并打印出与洗牌键数组中前两个键对应的值,如下所示:

$array = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4);
$keys = array_keys( $array);
shuffle( $keys);
echo $array[ $keys[0] ] . ',' . $array[ $keys[1] ];
$array = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4);
$keys = array_rand( $array, 2);
echo $array[ $keys[0] ] . ',' . $array[ $keys[1] ];

或者,可以使用的第二个参数抓取两个键,如下所示:

$array = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4);
$keys = array_keys( $array);
shuffle( $keys);
echo $array[ $keys[0] ] . ',' . $array[ $keys[1] ];
$array = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4);
$keys = array_rand( $array, 2);
echo $array[ $keys[0] ] . ',' . $array[ $keys[1] ];

array\u rand
接受一个附加的可选参数,该参数指定要从数组中取出多少个随机条目

$input_array = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4);
$rand_keys = array_rand($input_array, 2);
echo $input_array[$rand_keys[0]] . ',' . $input_array[$rand_keys[1]];

查看PHP文档中的array_rand。

array_rand
获取一个附加的可选参数,该参数指定要从数组中取出多少个随机条目

$input_array = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4);
$rand_keys = array_rand($input_array, 2);
echo $input_array[$rand_keys[0]] . ',' . $input_array[$rand_keys[1]];
请查看PHP文档中的array_rand

如果数组较大,则应该比shuffle()和freinds更有效


如果数组很大,应该比shuffle()和freinds更有效。

array\u rand
应该是有效的。应该是-我只是手头没有它<代码>数组\u rand应该是高效的。应该是-我只是手头没有它!你当然会出错。如果传递第二个参数,则会得到一个键数组(如中所述),该数组不是有效索引。和的可能重复。当然,您会得到错误。如果传递第二个参数,则会得到一个键数组(如中所述),该数组不是有效索引。和的可能副本。1。在第三行的末尾有一个额外的括号,和2。这将只选择2个随机键,而不是原始数组中的值。@Jeshurun感谢您的帮助:)但是nickb首先发布了正确的答案,这两个答案都非常好!1.在第三行的末尾有一个额外的括号,和2。这将只选择2个随机键,而不是原始数组中的值。@Jeshurun感谢您的帮助:)但是nickb首先发布了正确的答案,这两个答案都非常好!与这一个,因为它是最快的,工作完美@旺卡-很高兴我能帮上忙:)这是最快的,而且工作完美无瑕@旺卡-很高兴我能帮忙:)