値が配列内にあるかどうかを確認するスクリプトと単純な if チェックがあります。if タグが配列内にあるときに実行される理由がわからないようです。
else if (!in_array($type, $avatarformats)) {
$error .= '<div class="alert error">You\'re image is not a allowed format</div>';
unlink($_FILES['file']['tmp_name']);
}
スクリプトが $type と $avatarformats を読み取ると、次のようになります。
$avatarformats = Array ( [0] => .jpg [1] => .jpeg [2] => .png )
$type = .png
.png が配列内にあるため、if タグが実行されるべきではないときに実行されます。それとも、私は何をしているのか理解していません。