Qual seria o melhor método para mover qualquer elemento de uma matriz associativa para o início da matriz?
Por exemplo, digamos que eu tenha a seguinte matriz:
$myArray = array(
'two' => 'Blah Blah Blah 2',
'three' => 'Blah Blah Blah 3',
'one' => 'Blah Blah Blah 1',
'four' => 'Blah Blah Blah 4',
'five' => 'Blah Blah Blah 5',
);
O que eu quero fazer é mover o elemento 'um' para o início e terminar com a seguinte matriz:
$myArray = array(
'one' => 'Blah Blah Blah 1',
'two' => 'Blah Blah Blah 2',
'three' => 'Blah Blah Blah 3',
'four' => 'Blah Blah Blah 4',
'five' => 'Blah Blah Blah 5',
);
Se você tiver chaves de array numéricas e quiser reindexar as chaves de array, seria melhor colocá-lo
array_merge
assim:fonte
Um pouco tarde, mas caso alguém precise, criei este pequeno trecho.
Basta ajustá-lo para atender às suas necessidades ou usá-lo e remover o índice para mover. Também funciona com matrizes associativas.
fonte
Aqui está outra linha simples que faz isso usando
array_splice()
:fonte
se você tem 2 arrays, o primeiro tem elementos para mover para o topo do segundo array de elementos, você pode usar
Aqui está um exemplo de código:
fonte
Há uma função nos comentários do manual do PHP para array_unshift que pode ser usada para adicionar um elemento, com chave, ao início de um array:
Remova o elemento e insira-o novamente com a função acima:
Uma abordagem mais geral pode ser usar uksort para classificar seu array por chaves e fornecer uma função de classificação própria.
fonte
return = array_reverse($arr, true);