我有一个PHP脚本,它读取一个大型的CSV文件并执行某些操作,但仅当“用户名”字段唯一时才执行。CSV在多个脚本中被使用,因此更改输入以仅包含唯一的用户名不是一个选项。
非常基本的程序流程(我正在思考)是这样的:
$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()
更有效的搜索方法,考虑到它可能不知道数组已排序?