Tengo el siguiente JSON:

{
"row":  [
    {
    "sort":3,
    "type":"fat",
    "widgets":
        [
            {"values": [3,9] },
            {"values": [8,4] }                  
        ]
    },
{
    "sort":2,
    "type":"three",
    "widgets":
    [
        {"values": [3,4] },
        {"values": [12,7] },
        {"values": [12,7] }                         
    ]
}                       
]
}

Y esto de PHP a la salida es:

foreach ( $value->row as $therow )
{
    echo "<div class='row ".$therow->type."'>";

    foreach ( $therow->widgets as $thewidgets )
    {
        echo "<div class='widget'>";
        echo $thewidgets->values[0];
        echo "</div>";

    }

    echo "</div>";

}

Lo que me gustaría hacer es ordenar la salida de la señal basado en el tipo de valor en el JSON, alguna idea?

  • Y qué tipo de especie sería «2» o «3»?
  • El orden de la fila como fue creada en el backend
InformationsquelleAutor Tom | 2009-05-20

4 Comentarios

  1. 4

    Uso usort:

    function my_sort($a, $b)
    {
        if ($a->sort < $b->sort) {
            return -1;
        } else if ($a->sort > $b->sort) {
            return 1;
        } else {
            return 0;
        }
    }
    
    usort($value->row, 'my_sort');
  2. 0

    Acaba de ordenar los datos antes de la impresión en el segundo foreach bucle:

    foreach ($value->row as $therow) {
        if ($therow->sort == 2) {
            //sort $therow->widgets according to whatever sort 2 means
        } elseif ($therow->sort == 3) {
            //sort $therow->widgets according to whatever sort 3 means
        }
        echo "<div class='row ".$therow->type."'>";
        foreach ($therow->widgets as $thewidgets) {
            echo "<div class='widget'>";
            echo $thewidgets->values[0];
            echo "</div>";
        }
        echo "</div>";
    }

Dejar respuesta

Please enter your comment!
Please enter your name here