How to Weave Yarn Ends Horizontally
If you switched yarns in the middle of a row and have loose ends dangling, you need to weave the ends in horizontally. To weave the ends in horizontally, untie the knot or pick out one of the stitches if you worked a stitch with a double strand of yarn.
Take a careful look at those purl bumps. The tops of the purl stitches look like over bumps, and the running threads between the stitches look like under bumps.
Using a tapestry needle, weave the ends in:
Weave the end on the right in and out of the under bump; then continue working to the left.
Weave the end on the left in and out of the under bump; then continue working to the right.
The ends cross each other, filling in the gap between the old yarn and the new.
Snip the ends about 1/2 inch from the surface and gently stretch and release the fabric to pull the tails into the fabric.
Work fairly loosely so as not to pull the fabric in any way. Check the right side of the fabric to make sure that it looks smooth.
If your yarn is particularly slippery, weave in the end following the path of the neighboring stitches around the under and over bumps. This method creates a little extra bulk, but it completely secures the strand.