I have a remove[] array which has all the index positions of all the element with 0 in the data array (as below).
data array:
Retail,1,Utilities,1,Fo
If you look at your original array and the first result array, you'll notice that non-0 elements ARE being removed. The problem from what I can tell is that your array remove is looking for indices that have since been shifted over one to the left upon the removal of previous ones. You will need to add a correcting adjustment for this in your final for loop, or approach this another way.