Without an array - some kind of "Monsieur knows a lot .."
$Params = "login=Admin;pass:123123"; list( $user, $password) = explode(';', preg_replace( "/login=([^;]+);pass:(.+)/", "$1;$2", $Params));
But there is still an array, although not visible.
And you can just delete all the extra two times :)
Upd. : without arrays, pure waste.
$Params = "login=Admin;pass:123123"; $user = preg_replace( '/^login=([^;]+).+/', '$1', $Params); $password = preg_replace( '/^[^;]+;pass:(.+)/', '$1', $Params);
Upd.2 : without regular expressions. It will break if the password or login contains the string " ;pass= ", which is unlikely, but possible.
$Params = "login=Admin;pass:123123"; parse_str( str_replace( ';pass:', '&password=', $Params)); $user = $login; printf( "Логин: %s пароль: %s\n", $user, $password);