的foreach循環我有這個片段DirectoryIterator和array_pop和陣列
$clusters = new DirectoryIterator("/agents/");
$cluster_array = array();
# Push each cluster into an array
foreach ($clusters as $fileinfo) {
if ($fileinfo != "." && $fileinfo != ".." && $fileinfo != "conf") {
array_push($cluster_array, $fileinfo->getFilename());
}
}
這使找到的每個文件夾到我的數組,但我的問題是,它保持在數組的開頭推動的結果。
array([0]=>cluster_2, [1]=>cluster_1)
我希望它在數組末尾按順序推送文件夾。我試過array_pop,但我不確定如何在這種情況下使用它。
我有我的陣列建成以後,我想通掃描每個陣列,看看有多少可用空間留給
foreach ($cluster_array as $cluster) {
echo $cluster . " " . Server::server_free_space("/agents/" . $cluster, 2)."<br />";
}
該類方法只使用disk_free_space()
然後將成果轉化爲MB轉換對我來說。
就地echo語句我打算做類似
if ((Server::server_total_space("/agents/" . $cluster, 2)/3) > xMB) {
}
的,我想創建一個文件夾到具有可用XMB數組中的第一個項目,如果XMB不可用,移到下一個數組項目上,依此類推,直到找到一個具有創建新文件夾所需空間的數組項目。
這是否有意義?
編輯:
我結束了這個還挺手工做的構建陣列
$clusters = new DirectoryIterator("/agents/");
$cluster_array = array();
$cluster_count = 0;
# Push each cluster into an array
foreach ($clusters as $fileinfo) {
if ($fileinfo != "." && $fileinfo != ".." && $fileinfo != "conf") {
array_push($cluster_array, "cluster_" . $cluster_count += 1);
}
}
那麼你卡在什麼錯誤你收到,或者這只是另一個代碼我的問題?只需使用:sort($ cluster_array)對其進行排序。 –
,只是返回1,如果我做了print_r就可以了。並沒有它不是一個代碼我的問題,它幫助我建立我的編碼邏輯問題;-) – Eli
@ s2xi:sort($ cluster_array);'通過引用改變數組,並返回一個布爾值,而不是排序的數組。在函數調用後執行'print_r($ cluster_array);',你會看到一個有序數組。 –