tableName = $tableName; $this->db = new DB_Function(); } public function compareData($tableName = "users", $idsFromDevice = "35,10,1,5,32,9") { $idsFromDeviceArray = explode(",", $idsFromDevice); $idResource = $this->db->getIDs($tableName); $idsArray = array(); while ($row = mysqli_fetch_assoc($idResource)) { $idsArray[] = $row["id"]; } $a = $this->flip_isset_diff($idsFromDeviceArray, $idsArray);//returns missing ids from server $b = $this->large_array_diff($idsFromDeviceArray, $idsArray); $c = $this->my_array_diff($idsFromDeviceArray, $idsArray); $d = $this->flip_isset_diff($idsArray, $idsFromDeviceArray); //returns missing ids from device $e = $this->large_array_diff($idsArray, $idsFromDeviceArray); $f = $this->my_array_diff($idsArray, $idsFromDeviceArray); return array("flip" => $a, "diff" => $b, "my_diff" => $c, "flip_device" => $d, "diff_device" => $e, "my_diff_device" => $f); } function flip_isset_diff($b, $a) { $start = microtime(true); $at = array_flip($a); $d = array(); foreach ($b as $i) if (!isset($at[$i])) $d[] = $i; echo (microtime(true) - $start) . PHP_EOL; return $d; } function large_array_diff($b, $a) { // Flipping $start = microtime(true); $at = array_flip($a); $bt = array_flip($b); // checking $d = array_keys(array_diff_key($bt, $at)); echo (microtime(true) - $start) . PHP_EOL; return $d; } function my_array_diff($b, $a) { $start = microtime(true); $d = array_values(array_diff($b, $a)); echo (microtime(true) - $start) . PHP_EOL; return $d; } function getAndInsertDataFromDevice($tableName = "users", $dataFromDevice) { $columns = implode(", ", array_keys($dataFromDevice)); $escaped_values = array_map(array($this, 'escape'), $dataFromDevice); $values = "'" . implode("','", $escaped_values) . "'"; return $this->db->insertData($tableName, $columns, $values); } function escape($array) { return mysql_real_escape_string($this->db->mysqli, $array); } function sendDataToDevice($tableName = "users", $idsFromDevice = "12,26,29") { $idResource = $this->db->getDataWhereID($tableName, $idsFromDevice); $idsArray = array(); while ($row = mysqli_fetch_assoc($idResource)) { $idsArray[] = $row; } return $idsArray; } }