🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# [ArrayObject](https://www.php.net/manual/zh/class.arrayobject.php "ArrayObject") >[info] ArrayObject是将数组转换为数组对象 ``` ArrayObject implements IteratorAggregate , ArrayAccess , Serializable , Countable { /* 常量 */ const integer STD_PROP_LIST = 1 ; const integer ARRAY_AS_PROPS = 2 ; /* 方法 */ //IteratorAggregate(聚合式迭代器)接口 public getIterator ( void ) : ArrayIterator //获取一个外部迭代器 从ArrayObject实例创建一个新的迭代器 //ArrayAccess public offsetExists ( mixed $index ) : bool public offsetGet ( mixed $index ) : mixed public offsetSet ( mixed $index , mixed $newval ) : void public offsetUnset ( mixed $index ) : void //Serializable public serialize ( void ) : string public unserialize ( string $serialized ) : void //Countable public count ( void ) : int //非继承重写方法 public __construct ([ mixed $input = array() [, int $flags = 0 [, string $iterator_class = "ArrayIterator" ]]] )//构造一个新的数组对象 public append ( mixed $value ) : void //追加新的值作为最后一个元素。 public asort ( void ) : void //按值对条目进行排序 public exchangeArray ( mixed $input ) : array //将数组换成另一个数组 public getArrayCopy ( void ) : array //创建ArrayObject的副本 public getFlags ( void ) : int //获取行为标志 public getIteratorClass ( void ) : string //获取ArrayObject的迭代器类名 public ksort ( void ) : void //按键对条目进行排序 public natcasesort ( void ) : void //使用不区分大小写的“自然顺序”算法对数组进行排序 public natsort ( void ) : void //使用“自然顺序”算法对条目进行排序 public setFlags ( int $flags ) : void //设置行为标志 public setIteratorClass ( string $iterator_class ) : void //设置ArrayObject的迭代器类名 public uasort ( callable $cmp_function ) : void //使用用户定义的比较函数对条目进行排序并维护密钥关联 public uksort ( callable $cmp_function ) : void //使用用户定义的比较函数按键对条目进行排序 } ``` ## **例子1:** ``` <?php //打印全部数组元素 $arr =array('1'=>'one', '2'=>'two', '3'=>'three'); $arrayobject = new ArrayObject($arr);//构造一个ArrayObject对象 for($iterator= $arrayobject->getIterator();//构造一个迭代器 $iterator->valid();//检查是否还含有元素 $iterator->next()){ //指向下个元素 echo $iterator->key() . ' => ' . $iterator->current() . "\n";//打印数组元素 } ?> ``` ## **例子2:** ``` <?php //重置数组指针 $arrayobject =new ArrayObject(); $arrayobject[] = 'zero'; $arrayobject[] = 'one'; $arrayobject[] = 'two'; $iterator= $arrayobject->getIterator(); $iterator->next(); echo $iterator->key(); // 1 $iterator->rewind(); //重置指针到头部 echo $iterator->key(); // 0 ?> ``` 例子3 ``` $array = array('Buck','Jerry','Tomas'); $arrayObject = new ArrayObject($array); // Add new element $arrayObject->append('Tweety'); // We are getting the iterator of the object $iterator = $arrayObject->getIterator(); // Simple while loop while ($iterator->valid()) { echo $iterator->current() . "\n"; $iterator->next(); } /* Outputs */ Buck Jerry Tomas Tweety ```