Eu tenho alguns problemas com uma matriz. Eu tenho uma matriz que eu quero modificar como abaixo. Eu quero remover o elemento (elementos) dele pelo índice e, em seguida, re-indexar a matriz. É possível?
$foo = array(
'whatever', // [0]
'foo', // [1]
'bar' // [2]
);
$foo2 = array(
'foo', // [0], before [1]
'bar' // [1], before [2]
);
unset($foo[0], $foo[3], $bar[1]);
array_splice
e não funcionou para os índices 0 e 1.http://php.net/manual/en/function.array-splice.php
fonte
É melhor você usar
array_shift()
. Isso retornará o primeiro elemento da matriz, remova-o da matriz e indexe novamente a matriz. Tudo em um método eficiente.fonte
array_pop()
recuperará e removerá o último elemento da matriz, se você precisar. Porém, nenhuma função pode ser feita para atuar em um elemento no meio da matriz.fonte
Não sei por que isso está sendo rebaixado, mas se alguém se deu ao trabalho de tentar, você perceberá que funciona. O uso da classificação em uma matriz reatribui as chaves da matriz. A única desvantagem é que classifica os valores. Como as chaves serão obviamente reatribuídas, mesmo com
array_values
, não importa se os valores estão sendo classificados ou não.fonte
Tente com:
fonte
Além da resposta do xzyfer
A função
Usar
Resultado
fonte
Se você usar
array_merge
, isso reindexará as chaves. O manual declara:http://php.net/manual/en/function.array-merge.php
Foi aqui que encontrei a resposta original.
http://board.phpbuilder.com/showthread.php?10299961-Reset-index-on-array-after-unset ()
fonte