gpt4 book ai didi

php - 替代 array_shift 函数

转载 作者:行者123 更新时间:2023-12-02 07:52:45 29 4
gpt4 key购买 nike

好的,我需要在这个数组中保留键,我只想从这个数组中移动第一个元素。实际上我知道当我这样做时这个数组的第一个键总是 1:

// Sort it by 1st group and 1st layout.
ksort($disabled_sections);
foreach($disabled_sections as &$grouplayout)
ksort($grouplayout);

基本上,我宁愿不必对它进行 ksort 来获取 key = 1 的数组。而且,老实说,我不是 array_shift 的忠实粉丝,它只需要很长时间 IMO。还有别的办法吗。也许是一种提取整个数组的方法,其中找到了 $disabled_sections[1],而无需执行 foreach 和排序,以及 array_shift。我只想将 $disabled[1] 添加到另一个数组并将其从该数组中完全删除。同时保持两个数组键的结构不变。从技术上讲,这样做甚至可以:

$array = array();
$array = $disabled_sections[1];

但它需要将其从 $disabled_sections 中移除。我可以使用类似这种方法吗...

$array = array();
$array = $disabled_sections[1];
$disabled_sections -= $disabled_sections[1];

像上面这样的事情甚至可能吗??

谢谢。

最佳答案

尽管对此有一个公认的答案;以防其他人偶然发现这个问题,一种不使用 array_shift 来取消设置数组的第一个元素(不管它的键,或者它的键的顺序)的方法是:

reset($array); // sets internal array pointer to start
unset($array[key($array)]); // key() returns key of current array element

虽然我相当相信这就是 array_shift 内部所做的(所以我想这不会有任何性能提升),除了检索到的值的额外返回:

$element = reset($array); // also returns element
unset($array[key($array)]);
return $element;

只是为了完成。

关于php - 替代 array_shift 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2735211/

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