我有一個PHP腳本,它讀取大量的CSV並執行某些操作,但前提是「用戶名」字段是唯一的。 CSV用於多個腳本,因此將輸入從CSV更改爲僅包含唯一用戶名不是一種選擇。保存在PHP中排序的數組
非常基本的程序流程(這我想了解一下)是這樣的:
$allUsernames = array();
while($row = fgetcsv($fp)) {
$username = $row[0];
if (in_array($username, $allUsernames)) continue;
$allUsernames[] = $username;
// process this row
}
由於這個CSV實際上可能是相當大的,它是具有in_array
位讓我思考。當通過數組搜索一個成員時,最理想的情況是它是否已經排序,所以你將如何從零開始建立一個數組,並保持秩序?一旦按順序,考慮到它可能不知道數組是否已排序,是否會有更有效的方法來搜索它,而不是使用in_array()
?
你的意思是例子#6?我讀到的方式是數組是有序的映射,這不一定等同於排序:它們只是對它們有一個命令。 – nickf 2009-01-29 06:46:59
@nickf:PHP數組是哈希映射,由數組鍵指示索引。內部訂單與訪問值無關。 – Tomalak 2009-01-29 07:14:37
好吧,這是有道理的,但這只是數組的關鍵,對吧?這不會幫助您嘗試在數組中找到特定的值。 – nickf 2009-01-31 11:37:58