我想这样做,以便我的多维数组是随机顺序。你会怎么做?
// This is how the array looks like
print_r($slides);
Array
(
[0] => Array
(
[id] => 7
[status] => 1
[sortorder] => 0
[title] => Pants
)
[1] => Array
(
[id] => 8
[status] => 1
[sortorder] => 0
[title] => Jewels
)
[2] => Array
(
[id] => 9
[status] => 1
[sortorder] => 0
[title] => Birdhouse
)
[3] => Array
(
[id] => 10
[status] => 1
[sortorder] => 0
[title] => Shirt
)
[4] => Array
(
[id] => 11
[status] => 1
[sortorder] => 0
[title] => Phone
)
)
// This how the result is if I use array_rand()
print_r(array_rand($slides, 5));
Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
[4] => 4
)
// This how the result is if I use shuffle()
print_r(shuffle($slides));
1
答案 0 :(得分:19)
shuffle()
是去这里的方式。它会打印1
,因为shuffle
会更改数组就地并返回一个布尔值,因为它写在documentation中:
成功时返回 TRUE ,失败时返回 FALSE 。
我建议您也阅读documentation of array_rand()
:
从数组中选择一个或多个随机条目,并返回随机条目的键(或键)。
如果使用内置函数,请务必阅读文档。不要只是假设如何工作。我敢打赌,写这个问题比花时间更多。
答案 1 :(得分:1)
答案 2 :(得分:1)
我不确定你希望它如何显示,但你可以循环数组并使用php rand(0,arraylen)函数来解析数组。
答案 3 :(得分:0)
它完美无缺。 print_r(shuffle($ slides)))给出输出TRUE,因为shuffle
的返回值是布尔值而不是数组。
请参阅此处的工作示例:http://codepad.org/B5SlcjGf