php关联数组使用键选择1个随机值

php关联数组使用键选择1个随机值,php,arrays,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' =&

我需要从数组中随机抽取一个元素。我有密码

     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;
     }
 }

而且它不起作用。任何提示?

只需使用
array\u rand($arr,1)
而不使用
foreach
loop

通过PHP,我们可以使用函数array\u rand()

有关更多信息,请访问:


您可以使用数组\u键来获取索引数组中的键。
just use array_rand就像您选择一个并回显$arr关联键一样

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

在不使用循环的情况下使用此选项

$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];

“.jpg”文件除了一个之外是否都是相同的?因为在6个文件相同的情况下,在7个文件之间随机选择将比通常情况下返回相同的文件

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

您应该像下面这样打印数组结果

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


$keys
变量显示什么?你说的“不工作”是什么意思?如果要查找单个随机元素,请删除foreach,只需使用对array_rand的调用一次即可。注意事项可能重复:第65行的E:\xampp\htdocs\csgolos\freeCase.php中的数组到字符串转换($arr,1)
echo$a[0]
那么这只回显键的第一个字母如果我们得到了chleb,那么回显给出-c
$a=array\u rand($arr,1)
echo$a
。它对meI有效,不仅需要有.jpg文件,还需要有值和键。@第6节请参见编辑。这就是你要找的吗?是的!非常感谢:将$input更改为$arr
$rand_keys = array_rand($arr, 1);
echo $arr[$rand_keys[0]] . "\n";
<?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];
}
?>