es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

PHP – unir elementos en un arreglo basándose en su índice

No estoy seguro si esta pregunta tiene sentido, pero tengo la siguiente matriz:

Array (
    [columns_0_title] => qasdf
    [columns_0_content] => zxcv
    [columns_1_title] => Title 1
    [columns_1_content] => content 1
    [columns_2_title] => Title 2
    [columns_2_content] => content 2
    [columns_3_title] => 1
    [columns_3_content] => 2
    [columns_4_title] => asdf
    [columns_4_content] => 7
)

Y me gustaría unir los elementos con índices coincidentes. Por ejemplo, column_0_title y column_0_content se convertirían en una matriz anidada separada:

Array (
    [
        [title] => qasdf
        [content] => zxcv
    ]
    [
        [title] => Title 1
        [content] => content 1
    ]
    [
        [title] => Title 2
        [content] => content 2
    ]
    [
        [title] => 1
        [content] => 2
    ]
    [
        [title] => asdf
        [content] => 7
    ]
)
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para lograr esto, puedes utilizar un bucle for o un bucle foreach para iterar a través del array dado y crear un nuevo array con la estructura anidada deseada. Esto se puede hacer extrayendo el número de índice de la clave y utilizándolo como índice para el nuevo array. Aquí tienes un ejemplo utilizando un bucle foreach:

    $nuevo_array = array();
    foreach($viejo_array as $clave => $valor) {
      $indice = explode('_', $clave)[1]; // extraer el número de índice de la clave
      $tipo = explode('_', $clave)[2]; // extraer el tipo (título o contenido) de la clave
      $nuevo_array[$indice][$tipo] = $valor; // asignar el valor al índice y tipo correspondiente en el nuevo array
    }
    

    Esto debería darte el array anidado deseado.

Comments are closed.