Pregunta

Tengo un problema que tengo que corregir pronto que tarde. si tuviera el tiempo para volver a escribir el guión completo que lo haría, pero así es la vida de un programador, ¿verdad? anywho, me he hecho cargo de un proyecto y tengo una matriz multidimensional asociativo mixta / numérica de esta manera:

Array
(
    [item1] => Array
        (
            [dataset] => Array()
            [3] => Array()
            [7] => Array()
        )
    [item2] => Array
        (
            [dataset] => Array()
            [4] => Array()
            [19] => Array()
            [2] => Array()
        )
)

lo que tengo que hacer es cambiar el conjunto de datos índice en cada uno de los itemX índices a ser el último índice para dar lugar a esto:

Array
(
    [item1] => Array
        (
            [3] => Array()
            [7] => Array()
            [dataset] => Array()
        )
    [item2] => Array
        (
            [4] => Array()
            [19] => Array()
            [2] => Array()
            [dataset] => Array()
        )
)

algunas cosas que pueden ayudar a que esto suceda es que i saben que conjunto de datos índice será siempre el primer índice en el < strong> itemX índice y la clave siempre será 'conjunto de datos' y los demás todo siempre será índices numéricos. ¿Hay alguna forma de hacer esto en php? el hecho de que es una matriz mixta es lanzándome. No puedo permitir que los índices numéricos conseguir reset y empezando por 0. no importa si son objeto se desplaza, sólo que todos vienen antes de indexar el 'conjunto de datos'. tal vez es sólo uno de esos días ....:. \ alguna sugerencia o comentario son muy apreciadas

¿Fue útil?

Solución

Loop aunque todos los elementos de esta manera:

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)
}

desconexión del elemento 'conjunto de datos' y añadiendo de nuevo hará que el elemento que se añade en la parte inferior.

Es importante que se modifica la matriz original directamente, no los elementos de la foreach $, porque esos cambios no afectarán a la matriz original.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top