2011-08-26 11 views
0

을 기반으로 액션을 적용합니다. 그래서 여기에 정신적 투쟁을 통해이 작업을 완료하려고했습니다.배열을 반복하고 배열 항목

은 내가 할당 된 새 사용자에게 충분한 공간이 사용 가능한 첫 번째 클러스터에 새 사용자를 추가 할

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

과 같은 배열을 가지고있다.

이 클래스 메서드를 만들어 각 배열 항목의 meg 수를 출력했습니다. 나는 그것을 테스트하고 출력이 나에게 그 수치는 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 
    } 
} 
관련 문제