Hey, mates!
I've just read this topic and I think that some of the code is unecessary:
if (_x != _vehic) then {_removearray = _removearray + [_x]} forEach _cararray
I see the point. You want to remove a car. Then, all you need is:
_car_array = _car_array - [_car1]
Yes, it is possible. Check out the Command Reference for "array-array" procedures.
About finding a car:
_List_of_arrays = ["car_array1","car_array2","car_array3",etc]
{IF (_car_to_be_removed in call _x) THEN {[_car_to_be_removed] call (_x+" = "+_x+" - _this")} } forEach _List_of_arrays