【问题标题】:Create a second array_rand based on the first基于第一个创建第二个 array_rand
【发布时间】:2015-04-23 11:37:18
【问题描述】:

我的 array_rand 有问题。所以,我有一个这样的 .yml:

discover:
first:
    image: test1.jpg
second:
    image: test2.jpg
third:
    image: test3.jpg

现在在 php 中,我像这样使用 array_rand 获取这些图像:

$firstKey   = array_rand($aArray, 1);
$secondKey = array_rand($aArray, 1);

$aArray 是一个数组,其中包含来自 .yml 的数组。 问题在于 $firstKey 和 $secondKey 相等。这是一种在制作第二个array_rand之前删除$firstKey选择的键的方法吗? 我尝试了未设置:

unset($aArray['first']);

但没有结果。 请帮帮我。提前谢谢。

【问题讨论】:

    标签: php arrays random


    【解决方案1】:

    如果您不想在 array_rand 的两次单独调用中获得重复的键,那么只需在一次调用中获得两个键:

    $keys = array_rand($aArray, 2);
    

    或者:

    list($firstKey, $secondKey) = array_rand($aArray, 2);
    

    Sample Output

    摘自manual

    参数

    数组

    输入数组。

    个数

    指定应该选择多少条目。

    返回值

    当只选择一个条目时,array_rand() 返回随机条目的键。否则,将返回随机条目的键数组。这样做是为了可以从数组中挑选随机键以及随机值。尝试选择比数组中更多的元素将导致E_WARNING 级别错误,并返回NULL

    【讨论】:

    • 对不起,我不明白...我需要做:$firstKey = array_rand($aArray, 2);和 $secondKey = array_rand($aArray, 2); ?
    • @Gigel 不,你不需要调用它两次,array_rand 已经有第二个参数(int),你可以在其中控制使用它时将获得多少随机密钥.查看答案中的第二个示例,$firstKey$secondKey 将不一样
    • @Gigel 很高兴这有帮助
    【解决方案2】:

    试试下面:

    $firstKey   = array_rand($aArray, 1);
    unset($aArray(array_keys($firstKey)[0]));
    $secondKey = array_rand($aArray, 1);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-22
      • 1970-01-01
      • 1970-01-01
      • 2017-09-08
      • 1970-01-01
      相关资源
      最近更新 更多