where(array( 'lower' => array_map(function ($item) { return strtolower($item); }, $arr) ))->find(); $ids = array(); $exist = array(); foreach ($eas as $ea) { $ids[] = $ea->id; $exist[] = $ea->get('lower'); } foreach ($arr as $address) { if (empty($address) || !filter_var($address, FILTER_VALIDATE_EMAIL)) { continue; } if (!in_array(strtolower($address), $exist)) { $ea = $this->get(); $ea->set('name', $address); $this->save($ea); $ids[] = $ea->id; } } } return $ids; } }