💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
# ArrayObject(将数组作为对象操作) # [ArrayObject](https://www.php.net/manual/zh/class.arrayobject.php "ArrayObject") > ArrayObject是将数组转换为数组对象 ``` <pre class="calibre10">``` ArrayObject implements <span class="token4">IteratorAggregate</span> <span class="token3">,</span> ArrayAccess <span class="token3">,</span> Serializable <span class="token3">,</span> Countable <span class="token3">{</span> <span class="token">/* 常量 */</span> const integer STD_PROP_LIST <span class="token1">=</span> <span class="token6">1</span> <span class="token3">;</span> const integer ARRAY_AS_PROPS <span class="token1">=</span> <span class="token6">2</span> <span class="token3">;</span> <span class="token">/* 方法 */</span> <span class="token">//IteratorAggregate(聚合式迭代器)接口</span> public getIterator <span class="token3">(</span> void <span class="token3">)</span> <span class="token3">:</span> ArrayIterator <span class="token">//获取一个外部迭代器 从ArrayObject实例创建一个新的迭代器</span> <span class="token">//ArrayAccess</span> public offsetExists <span class="token3">(</span> mixed $index <span class="token3">)</span> <span class="token3">:</span> bool public offsetGet <span class="token3">(</span> mixed $index <span class="token3">)</span> <span class="token3">:</span> mixed public offsetSet <span class="token3">(</span> mixed $index <span class="token3">,</span> mixed $newval <span class="token3">)</span> <span class="token3">:</span> void public offsetUnset <span class="token3">(</span> mixed $index <span class="token3">)</span> <span class="token3">:</span> void <span class="token">//Serializable</span> public serialize <span class="token3">(</span> void <span class="token3">)</span> <span class="token3">:</span> string public unserialize <span class="token3">(</span> string $serialized <span class="token3">)</span> <span class="token3">:</span> void <span class="token">//Countable</span> public count <span class="token3">(</span> void <span class="token3">)</span> <span class="token3">:</span> int <span class="token">//非继承重写方法</span> public __construct <span class="token3">(</span><span class="token3">[</span> mixed $input <span class="token1">=</span> <span class="token4">array</span><span class="token3">(</span><span class="token3">)</span> <span class="token3">[</span><span class="token3">,</span> int $flags <span class="token1">=</span> <span class="token6">0</span> <span class="token3">[</span><span class="token3">,</span> string $iterator_class <span class="token1">=</span> <span class="token2">"ArrayIterator"</span> <span class="token3">]</span><span class="token3">]</span><span class="token3">]</span> <span class="token3">)</span><span class="token">//构造一个新的数组对象</span> public append <span class="token3">(</span> mixed $value <span class="token3">)</span> <span class="token3">:</span> void <span class="token">//追加新的值作为最后一个元素。</span> public asort <span class="token3">(</span> void <span class="token3">)</span> <span class="token3">:</span> void <span class="token">//按值对条目进行排序</span> public exchangeArray <span class="token3">(</span> mixed $input <span class="token3">)</span> <span class="token3">:</span> array <span class="token">//将数组换成另一个数组</span> public getArrayCopy <span class="token3">(</span> void <span class="token3">)</span> <span class="token3">:</span> array <span class="token">//创建ArrayObject的副本</span> public getFlags <span class="token3">(</span> void <span class="token3">)</span> <span class="token3">:</span> int <span class="token">//获取行为标志</span> public getIteratorClass <span class="token3">(</span> void <span class="token3">)</span> <span class="token3">:</span> string <span class="token">//获取ArrayObject的迭代器类名</span> public ksort <span class="token3">(</span> void <span class="token3">)</span> <span class="token3">:</span> void <span class="token">//按键对条目进行排序</span> public natcasesort <span class="token3">(</span> void <span class="token3">)</span> <span class="token3">:</span> void <span class="token">//使用不区分大小写的“自然顺序”算法对数组进行排序</span> public natsort <span class="token3">(</span> void <span class="token3">)</span> <span class="token3">:</span> void <span class="token">//使用“自然顺序”算法对条目进行排序</span> public setFlags <span class="token3">(</span> int $flags <span class="token3">)</span> <span class="token3">:</span> void <span class="token">//设置行为标志</span> public setIteratorClass <span class="token3">(</span> string $iterator_class <span class="token3">)</span> <span class="token3">:</span> void <span class="token">//设置ArrayObject的迭代器类名</span> public uasort <span class="token3">(</span> callable $cmp_function <span class="token3">)</span> <span class="token3">:</span> void <span class="token">//使用用户定义的比较函数对条目进行排序并维护密钥关联</span> public uksort <span class="token3">(</span> callable $cmp_function <span class="token3">)</span> <span class="token3">:</span> void <span class="token">//使用用户定义的比较函数按键对条目进行排序</span> <span class="token3">}</span> ``` ``` ## **例子1:** ``` <pre class="calibre10">``` <span class="token1"><</span><span class="token1">?</span>php <span class="token">//打印全部数组元素</span> $arr <span class="token1">=</span><span class="token4">array</span><span class="token3">(</span><span class="token2">'1'</span><span class="token1">=</span><span class="token1">></span><span class="token2">'one'</span><span class="token3">,</span> <span class="token2">'2'</span><span class="token1">=</span><span class="token1">></span><span class="token2">'two'</span><span class="token3">,</span> <span class="token2">'3'</span><span class="token1">=</span><span class="token1">></span><span class="token2">'three'</span><span class="token3">)</span><span class="token3">;</span> $arrayobject <span class="token1">=</span> <span class="token5">new</span> <span class="token4">ArrayObject</span><span class="token3">(</span>$arr<span class="token3">)</span><span class="token3">;</span><span class="token">//构造一个ArrayObject对象</span> <span class="token5">for</span><span class="token3">(</span>$iterator<span class="token1">=</span> $arrayobject<span class="token1">-</span><span class="token1">></span><span class="token4">getIterator</span><span class="token3">(</span><span class="token3">)</span><span class="token3">;</span><span class="token">//构造一个迭代器 </span> $iterator<span class="token1">-</span><span class="token1">></span><span class="token4">valid</span><span class="token3">(</span><span class="token3">)</span><span class="token3">;</span><span class="token">//检查是否还含有元素 </span> $iterator<span class="token1">-</span><span class="token1">></span><span class="token4">next</span><span class="token3">(</span><span class="token3">)</span><span class="token3">)</span><span class="token3">{</span> <span class="token">//指向下个元素 </span> echo $iterator<span class="token1">-</span><span class="token1">></span><span class="token4">key</span><span class="token3">(</span><span class="token3">)</span> <span class="token3">.</span> <span class="token2">' => '</span> <span class="token3">.</span> $iterator<span class="token1">-</span><span class="token1">></span><span class="token4">current</span><span class="token3">(</span><span class="token3">)</span> <span class="token3">.</span> <span class="token2">"\n"</span><span class="token3">;</span><span class="token">//打印数组元素</span> <span class="token3">}</span> <span class="token1">?</span><span class="token1">></span> ``` ``` ## **例子2:** ``` <pre class="calibre17">``` <span class="token1"><</span><span class="token1">?</span>php <span class="token">//重置数组指针</span> $arrayobject <span class="token1">=</span><span class="token5">new</span> <span class="token4">ArrayObject</span><span class="token3">(</span><span class="token3">)</span><span class="token3">;</span> $arrayobject<span class="token3">[</span><span class="token3">]</span> <span class="token1">=</span> <span class="token2">'zero'</span><span class="token3">;</span> $arrayobject<span class="token3">[</span><span class="token3">]</span> <span class="token1">=</span> <span class="token2">'one'</span><span class="token3">;</span> $arrayobject<span class="token3">[</span><span class="token3">]</span> <span class="token1">=</span> <span class="token2">'two'</span><span class="token3">;</span> $iterator<span class="token1">=</span> $arrayobject<span class="token1">-</span><span class="token1">></span><span class="token4">getIterator</span><span class="token3">(</span><span class="token3">)</span><span class="token3">;</span> $iterator<span class="token1">-</span><span class="token1">></span><span class="token4">next</span><span class="token3">(</span><span class="token3">)</span><span class="token3">;</span> echo $iterator<span class="token1">-</span><span class="token1">></span><span class="token4">key</span><span class="token3">(</span><span class="token3">)</span><span class="token3">;</span> <span class="token">// 1</span> $iterator<span class="token1">-</span><span class="token1">></span><span class="token4">rewind</span><span class="token3">(</span><span class="token3">)</span><span class="token3">;</span> <span class="token">//重置指针到头部</span> echo $iterator<span class="token1">-</span><span class="token1">></span><span class="token4">key</span><span class="token3">(</span><span class="token3">)</span><span class="token3">;</span> <span class="token">// 0</span> <span class="token1">?</span><span class="token1">></span> ``` ```