general array_diff_key messiness