Just a thought...

Is there any possibility of modifying the socket communication class to return separate arrays? A [P] array, a [D] array and the [CHK] separately. Then if, for some reason, you need the entire thing as a single array, you can combine the 2 arrays and [CHK] into a single array.