我目前正在处理一些任务,需要获取第一个也是最后一个元素出现的数组键。
示例:
$array = [1,2,3,2,4,1,1,2,3];
getFor(1); // keys 0 and 6
getFor(2); // keys 1 and 7
getFor(3); // keys 2 and 8
我很感激对此的任何帮助。
P.S。简单地预处理数组在这里是无效的,因为对于很长的数组(超过1000000个条目)需要花费太多时间。所以我正在寻找那个不那么明显的解决方案。
此外,getFor
返回类型不是必需的,它可以是字符串或两个值的数组。
答案 0 :(得分:4)
public function postUserAction(Request $request)
{
$userManager = $this->get('fos_user.user_manager');
$email = $request->request->get('email');
$username = $request->request->get('user');
$password = $request->request->get('password');
$email_exist = $userManager->findUserByEmail($email);
$username_exist = $userManager->findUserByUsername($username);
if($email_exist || $username_exist){
$response = new JsonResponse();
$response->setData("Username/Email ".$username."/".$email." existiert bereits");
return $response;
}
$user = $userManager->createUser();
$user->setUsername($username);
$user->setEmail($email);
$user->setLocked(false);
$user->setEnabled(true);
$user->setPlainPassword($password);
$userManager->updateUser($user, true);
$response = new JsonResponse();
$response->setData("User: ".$user->getUsername()." wurde erstellt");
return $response;
}
答案 1 :(得分:1)
这是一个OOP解决方案:
class GetFor
{
private $Foo[];
public function __construct(
array $foo, $bar
) {
$this->Foo = array_keys($foo, $bar);
return $this->Foo[0] . '-' . $this->Foo[count($this->Foo) -1)];
}
}
echo new GetFor(
[0,1,2,3,4,6,3,1,5], 2
);