gpt4 book ai didi

PHP 如何对 arrayObject 进行 array_unshift

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:57:00 25 4
gpt4 key购买 nike

如标题所述,如何在 arrayObject 上执行 array_unshift()array_push() 是通过执行arrayObject->append() 但是 unshift 呢?

编辑:我忘记提及的是,在这种特殊情况下我还需要保留现有 key 。

最佳答案

API of ArrayObject没有任何功能可以直接完成此操作。您还有其他几种选择:

  • 手动将每个元素移动 1,并将新值设置为索引 0(仅当您有数字索引 ArrayObject 时)。
 $tmp = NULL;
for ($i = 0; $arrayObject->offsetExists($i + 1); $i++) {
$tmp = $arrayObject->offsetGet($i + 1);
$arrayObject->offsetSet($i + 1, $arrayObject->offsetGet($i));
}
$arrayObject->offsetSet($i, $tmp);
$arrayObject->offsetSet(0, $new_value);
  • 编写一个派生自 ArrayObject 的类并添加一个函数 prepend(实现可以是下面的那个)。
  • 提取一个数组,调用 array_unshift() 并使用修改后的数组创建一个新的 ArrayObject:
 $array = $arrayObject->getArrayCopy();
array_unshift($array, $new_value);
$arrayObject->exchangeArray($array);

关于PHP 如何对 arrayObject 进行 array_unshift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6875080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com