我有一个如下所示的数组
Array
(
[0] => '13-Nov'
[1] => 'PUJA SUNUWAR'
[2] => '13-Nov'
[3] => '...301303'
[4] => 'TT1331600004\DLG'
[5] => '-10000.00'
[6] => '0'
[7] => '90000.00'
)
我需要删除第4项数组并将其另存为
Array
(
[0] => '13-Nov'
[1] => 'PUJA SUNUWAR'
[2] => '13-Nov'
[3] => 'TT1331600004\DLG'
[4] => '-10000.00'
[5] => '0'
[6] => '90000.00'
)
我不想迭代数组的每个元素。是否有像array_pop
这样的一个镜头函数来删除数组的第n个元素?
答案 0 :(得分:12)
使用array_splice($array, 3, 1);
答案 1 :(得分:1)
这是一个二维阵列吗?如果是这样的话:
不,没有内置功能来执行此操作。您可以将'array_walk'与自定义回调一起使用,但我怀疑它会比简单的foreach更快。
否则(如果正常数组):
unset( $aData[3] );
$aData = array_values( $aData );
比array_splice快。
答案 2 :(得分:0)
如上所述,没有功能构建。
如果您不需要关心数组索引,则应使用unset
,如果需要,则应使用array_values
。
此外,您应该在数组迭代时使用value reference
以防止在修改值时进行内部数组copyng。如果不这样做,那可能是性能崩溃的原因之一。
foreach ($yourDataSet as &$value) {
unset($value[2]);
//$value = array_values($value);
}
您应该array_splice
使用{{1}}。
P.S。您还可以检查perfomance reasons有关不同类型的数组迭代的性能测试。