It takes two elements of the array at once. Since you’ve got header-valuearray-header-valuearray-etc, taken two elements means you get an array which contains a header and an array of values.
http://www.php.net/list
With list you then assign the header and the value array to two distinct variables, the first one contains the header, the second the value array.
@wellyfish, apologies if the code was confusing or unfamiliar to you. I tend to assume, perhaps mistakenly, that folks will go directly to the manual to read up on functions that they don’t know about. (e.g. http://php.net/array_chunk)