"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo convertir matrices PHP multidimensionales en matrices 2D con claves de notación de puntos?

¿Cómo convertir matrices PHP multidimensionales en matrices 2D con claves de notación de puntos?

Publicado el 2025-01-15
Navegar:569

How to Convert Multidimensional PHP Arrays to 2D Arrays with Dot Notation Keys?

Convertir matrices PHP multidimensionales en matrices 2D con claves de notación de puntos

Aplanar matrices PHP multidimensionales en matrices 2D con claves de notación de puntos puede ser beneficioso para varios escenarios. Le permite acceder sin problemas a valores de matrices anidadas usando notación de puntos, lo que mejora la legibilidad y el mantenimiento del código.

Función recursiva para convertir matrices anidadas

Afortunadamente, PHP proporciona una función recursiva función que puede lograr elegantemente esta conversión:

$result = array();
$ritit = new RecursiveIteratorIterator(new RecursiveArrayIterator($myArray));

foreach ($ritit as $leafValue) {
    $keys = array();
    foreach (range(0, $ritit->getDepth()) as $depth) {
        $keys[] = $ritit->getSubIterator($depth)->key();
    }
    $result[join('.', $keys)] = $leafValue;
}

Explicación:

  • Las clases RecursiveIteratorIterator y RecursiveArrayIterator se utilizan para iterar a través de la matriz anidada de forma recursiva.
  • Durante cada iteración, el El método clave de RecursiveArrayIterator se utiliza para capturar la clave actual del array.
  • El método getSubIterator($profundidad) se utiliza para recuperar el subiterador a una profundidad específica, lo que nos permite iterar a través de matrices anidadas.
  • El rango(0, $ritit- >La función getDepth()) crea una matriz de profundidades, atravesando desde la matriz más interna hasta la matriz más externa.
  • La función join('.', $keys) concatena las claves de la matriz con un punto (.) como separador, creando la clave de notación de puntos.
  • El par clave-valor resultante se almacena en la matriz $resultado.

Salida:

Esta función generará la matriz 2D deseada con claves de notación de puntos:

$newArray = array(
    'key1' => 'value1',
    'key2.subkey' => 'subkeyval',
    'key3' => 'value3',
    'key4.subkey4.subsubkey4' => 'subsubkeyval4',
    'key4.subkey4.subsubkey5' => 'subsubkeyval5',
    'key4.subkey5' => 'subkeyval5'
);
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3