@kemo you have classes:
~~~
class A implements ArrayAccess, SeekableIterator {}
class B implements ArrayAccess, Countable {}
class C implements SeekableIterator, Countable {}
~~~
Which of the classes is most similar to an array?

But main thing is to remove duplication interface.