public function setGeocode($code_list, $foreignTable, $foreignId, $memberId) { $newcode_list = array(); foreach ($code_list as $code) { $newcode_list[$code] = $code; } foreach ($this->getCodeList($foreignTable, $foreignId) as $geocode) { if (!in_array($geocode->getGeocode(), $code_list)) { $geocode->delete(); } else { unset($newcode_list[$geocode->getGeocode()]); } } foreach ($newcode_list as $code) { $code = explode(',', $code); if (count($code) == 2) { $obj = new Geocode(); $obj->setForeignId($foreignId); $obj->setForeignTable($foreignTable); $obj->setLat($code[0]); $obj->setLng($code[1]); $obj->setMemberId($memberId); $obj->save(); $obj->free(true); unset($obj); } } }