Tengo una matriz multidimensional y quiero agruparla basada en la segunda llave.

Por ejemplo, tengo una salida de matriz de la siguiente manera:

Array
(
    [1] => Array
        (
            [1] => 48.083261120685
        )

    [2] => Array
        (
            [3] => 40.509258201058
        )

    [3] => Array
        (
            [2] => 38.262252939418
        )

    [4] => Array
        (
            [3] => 42.296571965113
        )

    [5] => Array
        (
            [3] => 4.5825756949558
        )

    [6] => Array
        (
            [3] => 186.7110066386
        )

    [7] => Array
        (
            [3] => 149.29835899969
        )

    [8] => Array
        (
            [2] => 47.053161424074
        )

    [9] => Array
        (
            [2] => 15.58845726812
        )

    [10] => Array
        (
            [2] => 6.164414002969
        )

    [11] => Array
        (
            [1] => 4.5825756949558
        )

    [12] => Array
        (
            [2] => 42.0119030752
        )

    [13] => Array
        (
            [1] => 52.886671288709
        )

    [14] => Array
        (
            [1] => 65.222695436481
        )

)

De la salida de la matriz como arriba. Es posible si con una pequeña habilidad para cambiar la salida para ser la siguiente:

Array
(
    [1] => Array
        (
            [1] => 48.083261120685,
[13] => 52.886671288709,
[14] => 65.222695436481
        )
[2] => Array (
[3] => 38.262252939418,
[8] => 47.053161424074,
[9] => 15.58845726812,
[10] => 6.164414002969,
[12] => 42.0119030752
)

He intentado varias maneras, pero tal vez porque solo soy un principiante, no he podido encontrar una solución. por favor ayuda amigo

-2
Muh Fadly Sangadji 27 jun. 2019 a las 18:41

1 respuesta

La mejor respuesta

Puedes usar foreach

$r= [];
foreach($a as $k => $v){
  foreach($v as $k1 => $v1){
    $r[$k1][$k] = $v1;
  }
}

DEMO de trabajo

1
Rakesh Jakhar 27 jun. 2019 a las 15:48