Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何对2个不同的JSON数据值进行排序?_Php_Json_Sorting - Fatal编程技术网

Php 如何对2个不同的JSON数据值进行排序?

Php 如何对2个不同的JSON数据值进行排序?,php,json,sorting,Php,Json,Sorting,请帮助我编写以下JSON数据的降序行和升序列排序代码 $print = '{"Table":[ {"Column":2,"Length":1,"Number":"A4","Row":12}, {"Column":2,"Length":1,"Number":"A3","Row":11}, {"Column":2,"Length":1,"Number":"A2","Row":9}, {"Column":2,"Length":1,"Number":"A1","Row":8}, {"Column"

请帮助我编写以下JSON数据的降序行和升序列排序代码

$print = '{"Table":[
{"Column":2,"Length":1,"Number":"A4","Row":12}, 
{"Column":2,"Length":1,"Number":"A3","Row":11},
{"Column":2,"Length":1,"Number":"A2","Row":9},
{"Column":2,"Length":1,"Number":"A1","Row":8},  
{"Column":3,"Length":1,"Number":"B4","Row":12},
{"Column":3,"Length":1,"Number":"B3","Row":11},
{"Column":3,"Length":1,"Number":"B2","Row":9},
{"Column":3,"Length":1,"Number":"B1","Row":8},
{"Column":4,"Length":1,"Number":"C4","Row":12},
{"Column":4,"Length":1,"Number":"C3","Row":11},  
{"Column":4,"Length":1,"Number":"C2","Row":9},
{"Column":4,"Length":1,"Number":"C1","Row":8},
{"Column":5,"Length":1,"Number":"D4","Row":12},
{"Column":5,"Length":1,"Number":"D3","Row":11},
{"Column":5,"Length":1,"Number":"D2","Row":9},
{"Column":5,"Length":1,"Number":"D1","Row":8},
{"Column":6,"Length":1,"Number":"E4","Row":12},
{"Column":6,"Length":1,"Number":"E3","Row":11},
{"Column":6,"Length":1,"Number":"E2","Row":9},
{"Column":6,"Length":1,"Number":"E1","Row":8},
{"Column":7,"Length":1,"Number":"F4","Row":12},
{"Column":7,"Length":1,"Number":"F3","Row":11},
{"Column":7"Length":1,"Number":"F2","Row":9},
{"Column":7,"Length":1,"Number":"F1","Row":8},
{"Column":8,"Length":1,"Number":"G4","Row":12},
{"Column":8,"Length":1,"Number":"G3","Row":11},
{"Column":8,"Length":1,"Number":"G2","Row":9},
{"Column":8,"Length":1,"Number":"G1","Row":8},
{"Column":9,"Length":1,"Number":"H4","Row":12},
{"Column":9,"Length":1,"Number":"H3","Row":11},
{"Column":9,"Length":1,"Number":"H2","Row":9},
{"Column":9,"Length":1,"Number":"H1","Row":8},
{"Column":10,"Length":1,"Number":"I4","Row":12},
{"Column":10,"Length":1,"Number":"I3","Row":11},
{"Column":10,"Length":1,"Number":"I2","Row":9},
{"Column":10,"Length":1,"Number":"I1","Row":8},
{"Column":11,"Length":1,"Number":"J4","Row":12},
{"Column":11,"Length":1,"Number":"J3","Row":11},
{"Column":11,"Length":1,"Number":"J2","Row":9},
{"Column":11,"Length":1,"Number":"J1","Row":8},
{"Column":12,"Length":1,"Number":"K4","Row":12},
{"Column":12,"Length":1,"Number":"K3","Row":11},
{"Column":12,"Length":1,"Number":"K2","Row":9},
{"Column":12,"Length":1,"Number":"K1","Row":8},
{"Column":13,"Length":1,"Number":"S4","Row":12},
{"Column":13,"Length":1,"Number":"S3","Row":11},
{"Column":13,"Length":1,"Number":"S5","Row":10},
{"Column":13,"Length":1,"Number":"S2","Row":9},
{"Column":13,"Length":1,"Number":"S1","Row":8}],"ResponseStatus":200,"Message":null}';
我想按行对元素进行分组,这些行应按降序打印,相应行组的列应按升序打印。我想要如下所示的休息

$print = '{"Table":[
{"Column":2,"Length":1,"Number":"A4","Row":12}, 
{"Column":3,"Length":1,"Number":"B4","Row":12},
{"Column":4,"Length":1,"Number":"C4","Row":12},
{"Column":5,"Length":1,"Number":"D4","Row":12},
{"Column":6,"Length":1,"Number":"E4","Row":12},
{"Column":7,"Length":1,"Number":"F4","Row":12},
{"Column":8,"Length":1,"Number":"G4","Row":12},
{"Column":9,"Length":1,"Number":"H4","Row":12},
{"Column":10,"Length":1,"Number":"I4","Row":12},
{"Column":11,"Length":1,"Number":"J4","Row":12},
{"Column":12,"Length":1,"Number":"K4","Row":12},
{"Column":13,"Length":1,"Number":"S4","Row":12},
{"Column":2,"Length":1,"Number":"A3","Row":11},  
{"Column":3,"Length":1,"Number":"B3","Row":11},  
{"Column":4,"Length":1,"Number":"C3","Row":11},
{"Column":5,"Length":1,"Number":"D3","Row":11},
{"Column":6,"Length":1,"Number":"E3","Row":11},
{"Column":7,"Length":1,"Number":"F3","Row":11},
{"Column":8,"Length":1,"Number":"G3","Row":11},
{"Column":9,"Length":1,"Number":"H3","Row":11},
{"Column":10,"Length":1,"Number":"I3","Row":11},
{"Column":11,"Length":1,"Number":"J3","Row":11},
{"Column":12,"Length":1,"Number":"K3","Row":11},
{"Column":13,"Length":1,"Number":"S3","Row":11},
{"Column":13,"Length":1,"Number":"S5","Row":10},
{"Column":2,"Length":1,"Number":"A2","Row":9},
{"Column":3,"Length":1,"Number":"B2","Row":9},
{"Column":4,"Length":1,"Number":"C2","Row":9},
{"Column":5,"Length":1,"Number":"D2","Row":9},
{"Column":6,"Length":1,"Number":"E2","Row":9},
{"Column":7"Length":1,"Number":"F2","Row":9},
{"Column":8,"Length":1,"Number":"G2","Row":9},
{"Column":9,"Length":1,"Number":"H2","Row":9},
{"Column":10,"Length":1,"Number":"I2","Row":9},
{"Column":11,"Length":1,"Number":"J2","Row":9},
{"Column":12,"Length":1,"Number":"K2","Row":9},
{"Column":13,"Length":1,"Number":"S2","Row":9},
{"Column":2,"Length":1,"Number":"A1","Row":8},  
{"Column":3,"Length":1,"Number":"B1","Row":8},
{"Column":4,"Length":1,"Number":"C1","Row":8},
{"Column":5,"Length":1,"Number":"D1","Row":8},
{"Column":6,"Length":1,"Number":"E1","Row":8},
{"Column":7,"Length":1,"Number":"F1","Row":8},
{"Column":8,"Length":1,"Number":"G1","Row":8},
{"Column":9,"Length":1,"Number":"H1","Row":8},
{"Column":10,"Length":1,"Number":"I1","Row":8},
{"Column":11,"Length":1,"Number":"J1","Row":8},
{"Column":12,"Length":1,"Number":"K1","Row":8}, 
{"Column":13,"Length":1,"Number":"S1","Row":8}],"ResponseStatus":200,"Message":null}';
请查看按降序打印的行和按升序打印的列

我使用了以下代码,但这有助于只缩短行,但列排序不正确

$json = json_decode($print, true);
usort($json['Table'], function($a, $b) { return $a['Row'] < $b['Row']; } );
$print = json_encode($json);
请帮我解决这个问题。提前感谢。

如果行的降序为b-a,列的降序为a-b:

usort($json['Table'], function($a, $b) {
    $diff = $b['Row'] - $a['Row'];
    if($diff) return $diff;
    return $a['Column'] - $b['Column'];
});

当然@NaveenPrasath很高兴这有帮助