我有一个如下所示的数组
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 个元素?
使用array_splice($array, 3, 1);
http://php.net/manual/en/function.array-splice.php
这是一个二维数组吗?㞖:
不,没有内置函数来执行此操作。您可以将"array_walk"与自定义回调一起使用,但我怀疑它会比简单的 foreach 更快。
否则(如果正常数组):
unset( $aData[3] );
$aData = array_values( $aData );
威奇比array_splice更快。
如上所述,没有内置函数。如果您不需要关心数组索引,则应使用 unset
,如果应该关心,则应使用array_values
。
此外,您应该在数组迭代时使用value reference
,以防止在修改值时复制内部数组。如果没有,这可能是性能分解的原因之一。
foreach ($yourDataSet as &$value) {
unset($value[2]);
//$value = array_values($value);
}
你应该使用array_splice
作为性能的原因。
附言你也可以检查phpbench对不同类型的数组迭代的性能测试。