<?php

$data = array('Pera', 'Mela', 'Arancia', 'Kiwi');
$iterator = new ArrayIterator($data);
$iterator->natsort();
foreach ($iterator as $value) {
    echo $value, PHP_EOL;
}
echo PHP_EOL;
class Person
{
    public $cognome = 'Rossi';
    public $nome = 'Mario';
}
$iterator = new ArrayIterator(new Person());
$iterator->natsort();
foreach ($iterator as $index => $value) {
    echo $index . ': ' . $value, PHP_EOL;
}
Beispiel #2
0
<?php

$a = array(1, 2, 3);
$o = new ArrayIterator($a);
var_dump($o->next());
var_dump($o->rewind());
var_dump($o->seek());
var_dump($o->asort());
var_dump($o->ksort());
var_dump($o->natsort());
var_dump($o->natcasesort());
Beispiel #3
0
 public function natsort()
 {
     parent::natsort();
     $this->refreshPositions();
 }
Beispiel #4
0
 * 如果要支持多维数组,便用RecursiveArrayIterator生成一个Iterator。然后再说对这个Iterator使用RecursiveIteratorIterator
 *
 */
$array = array('value1', 'value3', 'value2', 'value4', 'value5');
try {
    $object = new ArrayIterator($array);
    // 判断第二个节点是否存在
    if ($object->offsetExists(2)) {
        // 给第二个节点赋新值
        $object->offsetSet(2, 'value2_1');
    }
    // 在数组最后插入新值
    $object->append('value_6');
    // 自然排序排序 natsort(): 数组进行自然排序; natcasesort():对数组进行自然排序,并不区分大小写
    // uasort(): uksort(): 通过在参数中传递已定义的排序方式进行排序;
    $object->natsort();
    // 检查key为3所对应的值
    $object->offsetGet(3);
    // 销毁key为3的值
    $object->offsetUnset(3);
    // 指针跳转到第5个节点
    $object->seek(4);
    // foreach 循环
    /**
     * 如下的写法经调试出现了一个bug。
     * 当在循环中进行offsetUnset时,此时,当前指针会回跳会第一个节点,即$object->key()的值为0,但是此时循环的key值和value值并没有变,依然是3=>value4。
     * 而再次foreach循环之前,$object->key()值为0.循环后,$object->key()为1,所有,此时循环重复值。
     */
    foreach ($object as $key => $value) {
        echo '<li>' . $key . '=>' . $value . '</li>' . "\n";
    }