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

.
Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top