2010-08-18 93 views
2

假设我们有一个这样的阵列,其中1个为两个值和2个是两个值和3等PHP - 多线随机阵列

 
$language = array 
(
    "1"=>array 
    (
     "Hola", 
     "Spanish" 
    ), 
    "2"=>array 
    (
     "Fáilte", 
     "Irish" 
    ), 
    "3"=>array 
    (
     "Yasou", 
     "Greek" 
    ) 
); 

如何将随机选择只有1 3的阵列,并显示它有两个值。

所以像这样,$ language [2] [1],这就是$ language [2] [2]。
应,获得Failte,希腊

回答

1

这是你可以选择一组随机使用下面的代码字,然后呼应了两个结果,像这样:

$row = rand(0,sizeof($language)-1); 
echo $language[$row][0]; 
echo $language[$row][1]; 

这是假设你的数组实际上像大多数数组一样从0开始。如果它确实从1开始,则可以使用下面答案中发布的代码。

+0

This code is wrong。它会选择一个随机的第一个条目和一个随机的第二个条目,而不是同一个数组中的第一个和第二个条目。 – Timwi 2010-08-18 00:55:35

+0

此外,它永远不会选择最后一个条目,并且如果它试图选择第零个则会崩溃。 – Timwi 2010-08-18 00:57:10

+0

好的,谢谢。 – Sam152 2010-08-18 00:57:26

4

PHP有它自己的随机数组函数:array_rand()。像这样使用它:

$random_key = array_rand($language); 
echo $language[$random_key][0]; 
echo $language[$random_key][1]; 
+0

+1,可能是更好的解决方案。 – Sam152 2010-08-18 01:01:42