Php 从数组中删除第n个元素并对其重新索引
我有一个如下的数组Php 从数组中删除第n个元素并对其重新索引,php,arrays,Php,Arrays,我有一个如下的数组 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
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\u pop
的一次性功能来删除数组的第n个元素?这是2d数组吗?如果是:
不,没有内置函数来执行此操作。您可以使用带有自定义回调的“array\u walk”,但我怀疑它会比简单的foreach更快
Else(如果为普通阵列):
它比阵列拼接快。使用阵列拼接($array,3,1)代码>
如上所述,它没有内置功能。
如果不需要关心数组索引,则应使用unset
,如果需要,则应使用array\u值
此外,还应使用while数组迭代,以防止在修改值时内部数组复制。如果没有,这可能是性能崩溃的原因之一
foreach ($yourDataSet as &$value) {
unset($value[2]);
//$value = array_values($value);
}
您不应该使用阵列拼接
因为
p、 您还可以检查关于不同类型的数组迭代的性能测试。这个unset($array[2])有什么问题代码>?或者您可以创建一个函数,该函数在数组中循环并创建一个新的函数,其中包含不必要的值。unset本身不会对数组重新编制索引。
foreach ($yourDataSet as &$value) {
unset($value[2]);
//$value = array_values($value);
}