I’ve got this code
$second_half = $items; //ArrayIterator Object;
$first_half = array_slice($second_half ,0,ceil(count($second_half)/2));
This gives the warning Warning: array_slice() expects parameter 1 to be array, object given
Is there a way to slice an ArrayIterator object in two?
Basically I want one half of the unknown amount of items stored in $first_half and the remaining items $second_half; the result would be two ArrayIterator objects with two different sets of items.
It would appear you can use the
getArrayCopymethod of the ArrayIterator. This will return an array that you can then manipulate.As for assigning one half of the results to a new
ArrayIterator, and the other half to anotherArrayIterator, you wouldn’t need to reduce it to an array. You could simply use thecountandappendmethods of the Iterator itself:This results in two new
ArrayIterator‘s being constructed:Modify the ternary condition as needed.