multidimensional associativo misto / deslocamento matriz numérica
-
22-08-2019 - |
Pergunta
Eu tenho um problema que eu preciso para corrigir mais cedo do que mais tarde. se eu tivesse o tempo para reescrever o roteiro inteiro eu gostaria, mas assim é a vida de um programador, certo? anywho, eu tenho tido ao longo de um projeto e eu tenho um associativa / matriz numérica mista multidimensional assim:
Array
(
[item1] => Array
(
[dataset] => Array()
[3] => Array()
[7] => Array()
)
[item2] => Array
(
[dataset] => Array()
[4] => Array()
[19] => Array()
[2] => Array()
)
)
O que eu preciso fazer é mudar o conjunto de dados índice em cada um dos itemX índices para ser o último índice para resultar o seguinte:
Array
(
[item1] => Array
(
[3] => Array()
[7] => Array()
[dataset] => Array()
)
[item2] => Array
(
[4] => Array()
[19] => Array()
[2] => Array()
[dataset] => Array()
)
)
algumas coisas que podem ajudar a fazer isso acontecer é que i sei que o conjunto de dados índice será sempre o primeiro índice na < strong> itemX índice ea chave será sempre 'conjunto de dados' e os outros serão todos sempre índices numéricos. Há alguma maneira de fazer isso em php? o fato de que é uma matriz mista é me jogando. Eu não posso ter os índices numéricos obtenção de reset e começando em 0. não importa se eles são da ordem é deslocada, apenas que todos eles vêm antes do índice 'conjunto de dados'. talvez seja apenas um daqueles dias ....: \ quaisquer sugestões ou comentários são muito apreciados
.Solução
Curva embora todos os elementos como este:
foreach ($all_items as $key =>$items) {
$dataset = $items['dataset'];
unset($all_items[$key]['dataset']); // Removing it (from the top)
$all_items[$key]['dataset'] = $dataset; // Adding it again (at the bottom)
}
A desactivação do elemento 'conjunto de dados' e adicioná-lo novamente fará com que o elemento a ser adicionado na parte inferior.
É importante que você modificar a matriz original diretamente, não o US $ itens do foreach, porque essas mudanças não vão afetar a matriz original.