PHP JSON Çıktı sıralama

4 Cevap php

Ben şu JSON var:

{
"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] }							
	]
}						
]
}

Ve bunu çıktı bu PHP:

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>";

}

Ne yapmak istiyorum, JSON sıralama değere göre sıralama herhangi bir fikir çıktıya nedir?

4 Cevap

Kullan 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');

Buraya bakın:

http://stackoverflow.com/questions/777597/sorting-an-associative-array-in-php/777625

kullanıcı tanımlı sıralama için.

Istemci tarafında bunu yapmak istiyorsanız aşağıdaki bakın.

http://stackoverflow.com/questions/881510/json-sorting-question/881987#881987

Sadece ikinci foreach döngüde yazdırmadan önce verileri sıralamak:

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>";
}