Advertisement
Guest User

Untitled

a guest
Dec 1st, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.70 KB | None | 0 0
  1. <?php
  2.  
  3. $csv = array_map('str_getcsv', file('1.1.csv'));
  4.  
  5.  
  6. $utf_csv = [];
  7. $utf_rows = [];
  8. // меняем кодировку на UTF-8, парсим
  9. foreach ($csv as $rows) {
  10. $row = implode(',', $rows);
  11. $utf_row = mb_convert_encoding($row, 'UTF-8', 'Windows-1251');
  12. $utf_rows = explode(';', $utf_row);
  13. array_push($utf_csv, $utf_rows);
  14. }
  15.  
  16. //убираем первый элемент массива - заголовки
  17. array_shift($utf_csv);
  18.  
  19. $a = [];
  20. $b = [];
  21.  
  22. // оставляем только город Хабаровск, адрес + сумма сборов
  23. foreach ($utf_csv as &$rows) {
  24. // удаляем ненужную нам информацию из массива
  25. array_splice($rows, 0, 5);
  26. array_splice($rows, 1, 13);
  27. array_splice($rows, 2, 14);
  28.  
  29. // меняем запятую на точку и превращаем в число
  30. $money = str_replace(',', '.', $rows[1]);
  31. $money = (float)$money;
  32.  
  33. // делим адрес на составные части
  34. $address_splits = explode(', ', $rows[0]);
  35.  
  36. // город
  37. $city = substr($address_splits[0], 0, strrpos($address_splits[0], ' '));
  38.  
  39. // кв-л, ул, б-р и т.д.
  40. $street_type = substr($address_splits[1], strrpos($address_splits[1], ' '));
  41.  
  42. // улица
  43. $street = substr($address_splits[1], 0, (-1) * strlen($street_type));
  44.  
  45. // номер дома
  46. $house = mb_strtolower(substr($address_splits[2], strrpos($address_splits[2], ' ')));
  47.  
  48. // добавляем информацию выше в начало массива
  49. array_unshift($rows, trim($city), trim($street), trim($street_type), trim($house));
  50.  
  51. if ($city == 'Хабаровск') {
  52. array_push($a, trim($city), trim($street), trim($street_type), trim($house), trim($money));
  53. array_push($b, $a);
  54. $a = [];
  55. }
  56. }
  57.  
  58. $host = '127.0.0.1';
  59. $db = 'narayone';
  60. $user = 'root';
  61. $pass = '123';
  62. $charset = 'utf8';
  63.  
  64. $dsn = "mysql:host=$host;dbname=$db;charset=$charset";
  65. $opt = [
  66. PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
  67. PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
  68. PDO::ATTR_EMULATE_PREPARES => false,
  69. ];
  70. $pdo = new PDO($dsn, $user, $pass, $opt);
  71.  
  72. $query = 'SELECT house.id, house_restore_budget.house_id, house.aoguid, ' .
  73. 'new.FORMALNAME, new.SHORTNAME, house.HOUSENUM, house_restore_budget.money_ppl_collected ' .
  74. 'FROM narayone.house INNER JOIN narayone.new ON house.AOGUID = new.AOGUID ' .
  75. 'LEFT JOIN narayone.house_restore_budget ON house.id = house_restore_budget.house_id';
  76.  
  77. $db_data = [];
  78.  
  79. $stmt = $pdo->query($query);
  80.  
  81. while ($row = $stmt->fetch()) {
  82. array_push($db_data, $row);
  83. }
  84.  
  85. $pdo = null;
  86.  
  87. $hasData = [];
  88. $hasNoData = [];
  89. foreach ($db_data as $data) {
  90. if ($data['money_ppl_collected'] == null) {
  91. array_push($hasNoData, $data);
  92. } else {
  93. array_push($hasData, $data);
  94. }
  95. }
  96.  
  97. //$updated = 0;
  98. //foreach ($hasData as &$data) {
  99. // foreach ($b as $rows) {
  100. // if ($rows[1] == $data['FORMALNAME'] && $rows[2] == $data['SHORTNAME'] && $rows[3] == mb_strtolower($data['HOUSENUM'])) {
  101. // $data['money_ppl_collected'] = (float)$rows[4];
  102. // $updated++;
  103. //// array_push($data, (float)$rows[4]);
  104. // }
  105. // }
  106. //}
  107.  
  108. $created = 0;
  109. foreach ($hasNoData as &$data) {
  110. foreach ($b as $rows) {
  111. if ($rows[1] == $data['FORMALNAME'] && $rows[2] == $data['SHORTNAME'] && $rows[3] == mb_strtolower($data['HOUSENUM'])) {
  112. // $data['money_ppl_collected'] = (float)$rows[4];
  113. $created++;
  114. array_push($data, (float)$rows[4]);
  115. }
  116. }
  117. }
  118.  
  119. echo 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement