2011-08-26 58 views
0

好的,所以我在這裏進行了一場心理鬥爭,試圖完成這個任務。循環訪問數組並應用基於數組項目的操作

我有一個數組,看起來像

Array ([0] => cluster_1 [1] => cluster_2) 

我想一個新的用戶添加到具有足夠的空間來分配新的用戶第一個可用的羣集。

我有這種類的方法創建輸出每個數組項中的兆字節數量。我可以測試出來,並與

foreach ($cluster_array as $cluster) { 
    echo $cluster . " " . Server::server_free_space("/agents/" . $cluster, 2)."<br />"; 
} 

呼應的結果輸出給了我

cluster_1 20505 
cluster_2 21398 

這些數字都是以MB爲單位。

我想讓我的數組循環查找第一個有足夠空間分配新用戶的可用羣集。例如,如果新用戶需要分配1GB,那就是1024MB。因此,如果陣列中的第一個羣集沒有1024MB空閒空間,那麼它將移動並掃描陣列中的下一個羣集,依此類推。將用戶添加到該羣集。

我該如何處理?

回答

1

它不應該只是:

foreach ($cluster_array as $cluster) { 
    $size = Server::server_free_space("/agents/" . $cluster, 2); 
    if($size >= $whatTheUserNeeds) { 
     // add user to cluster 
     break; 
    } 
} 
+0

啊,我幾乎是在正確的軌道上。非常感謝你 – Eli

+0

@ s2xi:不客氣:) –

0
$space_required_for_new_user = 1024 
foreach ($cluster_array as $cluster) { 
    $free_space = Server::server_free_space("/agents/" . $cluster, 2); 
    if($free_space >= $space_required_for_new_user) { 
     //add new user 
     break; //will not continue through the loop 
    } 
}