php associative array用key选择1个随机值

时间:2018-01-29 12:15:47

标签: php arrays

我需要从数组中随机选择一个元素。我有代码;

     if (isset($_POST['losuj'])) {
   $arr = [
   'chleb' => 'skiny/1.jpg',
   'mienso' => 'skiny/2.jpg',
   'mienso2' => 'skiny/2.jpg',
   'mienso3' => 'skiny/2.jpg',
   'mienso4' => 'skiny/2.jpg',
   'mienso5' => 'skiny/2.jpg',
   'Hasasdasd' => 'skiny/2.jpg',
   ];

     foreach($arr as $key => $value) {
        $keys = array_rand( $arr, 1);
        echo $keys;
     }
 }

s didn正在工作。有什么提示吗?

7 个答案:

答案 0 :(得分:0)

只需使用array_rand($arr,1)而不使用foreach循环

答案 1 :(得分:0)

使用PHP,我们可以使用函数array_rand()

更多信息可在以下网址找到:

http://php.net/manual/en/function.array-rand.php https://www.w3schools.com/php/func_array_rand.asp

$arr = [
  'chleb' => 'skiny/1.jpg',
  'mienso' => 'skiny/2.jpg',
  'mienso2' => 'skiny/2.jpg',
  'mienso3' => 'skiny/2.jpg',
  'mienso4' => 'skiny/2.jpg',
  'mienso5' => 'skiny/2.jpg',
  'Hasasdasd' => 'skiny/2.jpg',
];

$randomEntry = array_rand($arr, 1);

答案 2 :(得分:0)

您可以使用array_keys来获取索引数组中的键 只需使用array_rand,就像你选择一个并回显$ arr关联键一样。

$keys = array_keys($arr);
$random = $keys[array_rand($keys,1)];
Echo $random . " => " . $arr[$random];

https://3v4l.org/miacb

答案 3 :(得分:0)

在没有循环的情况下使用它

$key = array_rand($arr);
echo $arr[$key];

完整示例

$arr = [
   'chleb' => 'skiny/1.jpg',
   'mienso' => 'skiny/2.jpg',
   'mienso2' => 'skiny/3.jpg',
   'mienso3' => 'skiny/4.jpg',
   'mienso4' => 'skiny/5.jpg',
   'mienso5' => 'skiny/6.jpg',
   'Hasasdasd' => 'skiny/7.jpg',
 ];

$key = array_rand($arr);
echo $key;
echo $arr[$key];

答案 4 :(得分:0)

' .jpg'文件意味着除了一个之外都是一样的?因为当6个相同时,在7个文件之间随机选择将比经常更多地返回相同的文件。

$rand_keys = array_rand($arr);
echo $arr[$rand_keys];

答案 5 :(得分:0)

您应该打印如下所示的数组结果

$rand_keys = array_rand($arr, 1);
echo $arr[$rand_keys[0]] . "\n";

答案 6 :(得分:0)

<?php
    $input = array(
    'chleb' => 'skiny/1.jpg',
    'mienso' => 'skiny/2.jpg',
    'mienso2' => 'skiny/3.jpg',
    'mienso3' => 'skiny/4.jpg',
    'mienso4' => 'skiny/5.jpg',
    'mienso5' => 'skiny/6.jpg',
    'Hasasdasd' => 'skiny/7.jpg',
);

foreach($input as $key => $value) {
    $keys = array_rand( $input, 1);
    echo $input[$keys];
}
?>