看来您可以使用getArrayCopy
ArrayIterator 的方法。这将返回一个您可以操作的数组。
至于将结果的一半分配给 new ArrayIterator
,另一半分配给 another ArrayIterator
,您不需要将其减少为数组。您可以简单地使用迭代器本身的count
and方法:append
$group = new ArrayIterator;
$partA = new ArrayIterator;
$partB = new ArrayIterator;
$group->append( "Foo" );
$group->append( "Bar" );
$group->append( "Fiz" );
$group->append( "Buz" );
$group->append( "Tim" );
foreach ( $group as $key => $value ) {
( $key < ( $group->count() / 2 ) )
? $partA->append( $value )
: $partB->append( $value );
}
这导致ArrayIterator
构建了两个新的:
ArrayIterator Object ( $partA )
(
[0] => Foo
[1] => Bar
[2] => Fiz
)
ArrayIterator Object ( $partB )
(
[0] => Buz
[1] => Tim
)
根据需要修改三元条件。