2013-06-12 116 views
0

我需要9周唯一的随机数0和44之间创建与range阵列至0之间和44和然后我使用shuffle号码添加这样的随机值:选择从阵列

$buildingIdArray = array(); 
$numbers = range (0, $maxNumberOfBuildings); 
shuffle($numbers); 

我需要一些帮助完成代码。我想通过数组索引选择9个数字,我是否应该使用循环来获取0到8之间的索引号,或者我应该使用slice来挑选数字,然后删除该索引?

我想添加数组中的9个唯一数字$buildingIdArray。任何想法如何解决这个问题?

回答

2

array_slice()在这个应用程序中是一个不错的选择。

$buildingIdArray = array(); 
$numbers = range (0, $maxNumberOfBuildings); 
shuffle($numbers); 
$buildingIdArray=array_slice ($numbers,0,9); 
+0

谢谢,但我有一些问题的代码!它不工作!请看看我的其他问题:http://stackoverflow.com/questions/17071881/loop-mysql-result –

+0

我现在发现错误!在第4行有一个';'失踪!!!我复制了上面的代码,因为没有';'它没有工作! –

+0

我明白了。我在分隔线的末尾添加了分号。 – IanPudney

1

如果您仅挑选一个条目,array_rand()将返回随机条目的密钥。否则,它将为随机条目返回一组键。这样做是为了您可以选择随机键以及数组中的值。

$rand_key = array_rand($buildingIdArray); 
echo $buildingIdArray[$rand_key] . "\n"; 
1
$buildingIdArray = array(); 
$numbers = range (0, $maxNumberOfBuildings); 
shuffle($numbers); 
for($i=0;$i<9;$i++) { 
    $buildingIdArray[] = $numbers[$i]; 
} 
+1

它应该是$ buildingIdArray [] = $ number [$ i],php的数组并不是真正的对象,是吗? – Deleteman

+0

是的,你说得对。今天一整天都在用物品:) – RST