2011-08-26 29 views
0

に基づいてアクションを適用するので、ここでこれを完了しようとする精神的な苦闘をしています。配列をループし、配列項目

私は新しいユーザを割り当てたために十分なスペースがあり、使用可能な最初のクラスタに新しいユーザーを追加したい

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

のように見えるの配列を持っています。

私はこのクラスメソッドを作成して、各配列アイテムのメグの量を出力しました。私はそれをテストし、出力は私にこれらの数字はMBである

cluster_1 20505 
cluster_2 21398 

を与える

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

で結果をエコーすることができます。

新しいユーザーを割り当てるために十分な領域がある最初の使用可能なクラスタを見つけるために、アレイをループしたいと考えています。たとえば、新しいユーザーに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 
    } 
} 
関連する問題