First, you seem to have the basics down, and to be blunt, I never understood it to be that simple in PHP. I'm a more .NET kinda guy.
I'm going to assume that sort($params); sorts correctly -- I don't know the specifity of that function in PHP. My big question is this bit :
$sig = hash_hmac("sha1", implode("&",$params), "secret"."");
Are you actually using the literal string "secret" (appended with an empty string) as your secret key? 'Cause that's not it. The secret string is called the Security Key, and you can find it under App Details on the MyApps page. Just a big long string of characters. That's your OAuth Consumer Secret. I just realized that unless you've been reading the forums, you might not know that. Otherwise, yes, that should do it.
Oh, and you probably realize this, but don't post your Security Key. If you need to post code with the Key in view, just fill it in with characters. A couple of people have done it, accidentally, and it's just not a good idea.