很简单,但我想知道为什么这不起作用。
我试图改组数组并输出结果(以单行结构)
这是我的代码:
echo shuffle(array("A","B","C"))[0];
这里需要小调整;)
答案 0 :(得分:2)
你的基本逻辑有点不对劲。我认为你只对一个值感兴趣吗?要记住这个逻辑,你可以这样做:
echo array_rand(array_flip(['A', 'B', 'C']));
答案 1 :(得分:1)
尝试以下代码
$arr = array("A","B","C");
shuffle($arr);
echo $arr[0];
答案 2 :(得分:1)
我知道这不是最好的解决方案,但它有效!
print_r( ( $b=array('A', 'B', 'C') ) && shuffle($b) ? next($b) : null );
这是如何运作的:
$b
$b
shuffle()
成功:
shuffle()
失败:
null
有些人可能会想:“为什么他没有使用current()
功能?”
好吧,似乎函数shuffle
只是改变了键的顺序,但指针始终指向同一个元素。这意味着current()
将始终返回'A'
。
显然,这种行为在PHP 5.4上发生了变化,将指针设置为第一个元素。
答案 3 :(得分:0)
尝试这个简单的功能
$my_array = array("A","B","C","D","E");
shuffle($my_array);
print_r($my_array);
答案 4 :(得分:0)
您需要在单独的变量中传递数组。另外,shuffle()本身只返回一个布尔值,因此你需要返回一个数组元素而不是函数的输出。
$ar = array("A","B","C");
shuffle($ar);
echo $ar[0];