我有一个看起来像
的csv文件移动,留言
移动,留言
移动,消息
我有一个
的数据库表id,mobile
id,mobile
id,mobile
我正在使用fgetcsv
将csv读入数组。
我最终想要的是一个看起来像
的数组移动,消息,身份
移动,消息,身份
移动,消息,id
我能做的一个问题是,
数组中的foreach行执行select id from table where mobile = ...;
但是看到有2000行可能会变得混乱,
这样做的更好方法是什么?
答案 0 :(得分:1)
如果你想在PHP中而不是在数据库中这样做,正如@Ignacio所建议的那样,这是一种可能性:
/* ... $array = fgetcsv ... */
$mobiles = array_unique(array_map(create_function('$a', 'return $a["mobile"];'), $array));
$mobiles = array_map('mysql_real_escape_string', $mobiles);
$query = "SELECT `id`, `mobile` FROM `table`
WHERE `mobile` IN ('" . join("', '", $mobiles) . "')";
/* ... $mobiles = mysql_query ... */
foreach ($array as &$row) {
foreach ($mobiles as $mobile) {
if ($row['mobile'] == $mobile['mobile']) {
$row['id'] = $mobile['id'];
continue 2;
}
}
}
答案 1 :(得分:0)
将CSV文件加载到数据库中,然后在两个表上进行连接。