繁体   English   中英

PHP的关联数组选择键1随机值

[英]php associative array select 1 random value with key

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

     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 有小费吗 ?

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

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

可以在以下位置找到更多信息:

http://php.net/manual/zh-CN/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);

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

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

https://3v4l.org/miacb

使用此无循环

$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";
<?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];
}
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM