【发布时间】:2012-09-12 11:41:43
【问题描述】:
我有一个数组 $test,它包含 1000 个元素,随机键在 1 到 10000 之间, 我想取消设置特定键范围的数组元素。例如,如果键值在 500 到 600 之间,我想取消设置元素。 现在我正在使用 foreach 循环来执行此操作。还有其他 php 快捷方式可以做到这一点吗?
【问题讨论】:
我有一个数组 $test,它包含 1000 个元素,随机键在 1 到 10000 之间, 我想取消设置特定键范围的数组元素。例如,如果键值在 500 到 600 之间,我想取消设置元素。 现在我正在使用 foreach 循环来执行此操作。还有其他 php 快捷方式可以做到这一点吗?
【问题讨论】:
这个怎么样(未经测试,手写)
function unsetRange($arr,$from,$to)
{
for($i=$from;$i<=$to;$i++)
unset($arr[$i]);
}
// Unset elements from 500 to 600
unsetRange($myArr,500,100);
【讨论】:
I want to unset array elements of particular key range. - 生成数字超出了此问题/答案的范围。 (至少国际海事组织)
原文链接
unset range of keys in an array
你可以试试array_slice
$return = array_slice($original, 0, 60)
然后
$return = $return+array_slice($original, 70)
或
$return = array_splice($original, 60, 10)
【讨论】:
This works, but it's really inefficient. You're creating 3 arrays in addition to the one you start with.