2013-06-12 115 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