Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $csv = array_map('str_getcsv', file('1.1.csv'));
- $utf_csv = [];
- $utf_rows = [];
- // меняем кодировку на UTF-8, парсим
- foreach ($csv as $rows) {
- $row = implode(',', $rows);
- $utf_row = mb_convert_encoding($row, 'UTF-8', 'Windows-1251');
- $utf_rows = explode(';', $utf_row);
- array_push($utf_csv, $utf_rows);
- }
- //убираем первый элемент массива - заголовки
- array_shift($utf_csv);
- $a = [];
- $b = [];
- // оставляем только город Хабаровск, адрес + сумма сборов
- foreach ($utf_csv as &$rows) {
- // удаляем ненужную нам информацию из массива
- array_splice($rows, 0, 5);
- array_splice($rows, 1, 13);
- array_splice($rows, 2, 14);
- // меняем запятую на точку и превращаем в число
- $money = str_replace(',', '.', $rows[1]);
- $money = (float)$money;
- // делим адрес на составные части
- $address_splits = explode(', ', $rows[0]);
- // город
- $city = substr($address_splits[0], 0, strrpos($address_splits[0], ' '));
- // кв-л, ул, б-р и т.д.
- $street_type = substr($address_splits[1], strrpos($address_splits[1], ' '));
- // улица
- $street = substr($address_splits[1], 0, (-1) * strlen($street_type));
- // номер дома
- $house = mb_strtolower(substr($address_splits[2], strrpos($address_splits[2], ' ')));
- // добавляем информацию выше в начало массива
- array_unshift($rows, trim($city), trim($street), trim($street_type), trim($house));
- if ($city == 'Хабаровск') {
- array_push($a, trim($city), trim($street), trim($street_type), trim($house), trim($money));
- array_push($b, $a);
- $a = [];
- }
- }
- $host = '127.0.0.1';
- $db = 'narayone';
- $user = 'root';
- $pass = '123';
- $charset = 'utf8';
- $dsn = "mysql:host=$host;dbname=$db;charset=$charset";
- $opt = [
- PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
- PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
- PDO::ATTR_EMULATE_PREPARES => false,
- ];
- $pdo = new PDO($dsn, $user, $pass, $opt);
- $query = 'SELECT house.id, house_restore_budget.house_id, house.aoguid, ' .
- 'new.FORMALNAME, new.SHORTNAME, house.HOUSENUM, house_restore_budget.money_ppl_collected ' .
- 'FROM narayone.house INNER JOIN narayone.new ON house.AOGUID = new.AOGUID ' .
- 'LEFT JOIN narayone.house_restore_budget ON house.id = house_restore_budget.house_id';
- $db_data = [];
- $stmt = $pdo->query($query);
- while ($row = $stmt->fetch()) {
- array_push($db_data, $row);
- }
- $pdo = null;
- $hasData = [];
- $hasNoData = [];
- foreach ($db_data as $data) {
- if ($data['money_ppl_collected'] == null) {
- array_push($hasNoData, $data);
- } else {
- array_push($hasData, $data);
- }
- }
- //$updated = 0;
- //foreach ($hasData as &$data) {
- // foreach ($b as $rows) {
- // if ($rows[1] == $data['FORMALNAME'] && $rows[2] == $data['SHORTNAME'] && $rows[3] == mb_strtolower($data['HOUSENUM'])) {
- // $data['money_ppl_collected'] = (float)$rows[4];
- // $updated++;
- //// array_push($data, (float)$rows[4]);
- // }
- // }
- //}
- $created = 0;
- foreach ($hasNoData as &$data) {
- foreach ($b as $rows) {
- if ($rows[1] == $data['FORMALNAME'] && $rows[2] == $data['SHORTNAME'] && $rows[3] == mb_strtolower($data['HOUSENUM'])) {
- // $data['money_ppl_collected'] = (float)$rows[4];
- $created++;
- array_push($data, (float)$rows[4]);
- }
- }
- }
- echo 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement