如何删除数组元素,然后重新索引数组?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何删除数组元素,然后重新索引数组?相关的知识,希望对你有一定的参考价值。
我有一个数组的问题。我有一个数组,我想修改如下。我想通过索引删除其中的元素,然后重新索引数组。这可能吗?
$foo = array(
'whatever', // [0]
'foo', // [1]
'bar' // [2]
);
$foo2 = array(
'foo', // [0], before [1]
'bar' // [1], before [2]
);
答案
unset($foo[0]); // remove item at index 0
$foo2 = array_values($foo); // 'reindex' array
另一答案
array_splice($array, 0, 1);
http:/php.netmanualenfunction.array-splice.php)。
另一答案
你最好用 array_shift()
. 这将返回数组中的第一个元素,将其从数组中删除并重新索引数组。所有这些都是一个高效的方法。
另一答案
array_splice($array, array_search(array_value, $array), 1);
另一答案
Unset($array[0]);
Sort($array);
我不知道为什么这个方法会被降权,但是如果有人尝试过,你会发现它是有效的。在数组上使用排序可以重新分配数组的键。唯一的缺点是它对值进行了排序。由于键值显然会被重新分配,所以即使是用 array_values
这与值是否被排序无关。
另一答案
试试用。
$foo2 = array_slice($foo, 1);
另一答案
除了xzyfer的答案之外
职能
function custom_unset(&$array=array(), $key=0)
if(isset($array[$key]))
// remove item at index
unset($array[$key]);
// 'reindex' array
$array = array_values($array);
//alternatively
//$array = array_merge($array);
return $array;
使用
$my_array=array(
0=>'test0',
1=>'test1',
2=>'test2'
);
custom_unset($my_array, 1);
结果
array(2)
[0]=>
string(5) "test0"
[1]=>
string(5) "test2"
另一答案
如果您使用 array_merge
这将重新索引键。手册中写道:"在输入数组中,数字键的值将在结果数组中从零开始用增量键重新编号。
输入数组中的数字键值将被重新编号,结果数组中的键值将从零开始递增。
http:/php.netmanualenfunction.array-merge.php)。
这是我找到原始答案的地方。
http:/board.phpbuilder.comshowthread.php?10299961-Reset-index-onarray-after-unset()
以上是关于如何删除数组元素,然后重新索引数组?的主要内容,如果未能解决你的问题,请参考以下文章