【问题标题】:PHP ArrayObject insert inside the arrayPHP ArrayObject 在数组中插入
【发布时间】:2015-04-29 20:32:43
【问题描述】:

如何在ArrayObject的数组内(*在数组中间)插入一个新值 当它是一个普通数组时,我知道该怎么做,就像这样:

$array_1 = array(
            '0' => 'zero',
            '1' => 'one',
            '2' => 'two',
            '3' => 'three',
        );
        echo "<pre>";
        array_splice($array_1, 2, 0, 'more');
        print_r($array_1);

但我不知道数组是否是这样的对象类型:

$array_1 = new ArrayObject([  '0' => 'zero',
                '1' => 'one',
                '2' => 'two',
                '3' => 'three']);

【问题讨论】:

    标签: php arrays data-structures arrayobject


    【解决方案1】:

    只需像这样使用append()

    $array_1 ->append('xy');
    

    这与普通数组的$array[] = "xy"; 几乎相同。

    如果要替换 arrayObject 元素,只需使用 offsetSet():

    $array_1->offsetSet(2, "more");
    

    编辑:

    只要使用getArrayCopy()就可以使用所有你熟悉的数组函数:

    $array_1 = $array_1->getArrayCopy();
    array_splice($array_1, 2, 0, 'more');
    $array_1 = new ArrayObject($array_1);
    

    【讨论】:

    • inside 我的意思是在数组的中间插入一个新元素,而不仅仅是追加到数组的末尾。
    • @Amaynut 在我的回答中然后使用:offsetSet() 更改中间的元素
    • @Amaynut 那么这个问题我们在哪里?
    • 使用offsetSet() 您将替换给定偏移量中的元素,您不能只插入一个新元素并移动数组索引。看看我的例子,一个普通的数组,我使用函数array_splice($array_1, 2, 0, 'more');在数组中间插入一个新元素我想为我的对象做同样的事情。
    • 我想为我的对象做同样的事情所以你想要为ArrayObject实现array_splice(),对吧?
    猜你喜欢
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    • 2012-05-19
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多