我有一个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