Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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 JSON按第二级的键排序_Php_Sorting_Cakephp_Json - Fatal编程技术网

Php JSON按第二级的键排序

Php JSON按第二级的键排序,php,sorting,cakephp,json,Php,Sorting,Cakephp,Json,嗨,有没有办法在解析之前对JSON进行排序?我想按过期时间分类。这是我的JSON { "State of Origin 2014":{ "1471137":{ "EventID":1471137, "ParentEventID":1471074, "MainEvent":"State Of Origin Series 2014", "OutcomeDateTime":"2014-06-18 20:10:00

嗨,有没有办法在解析之前对JSON进行排序?我想按过期时间分类。这是我的JSON

{
   "State of Origin 2014":{
      "1471137":{
         "EventID":1471137,
         "ParentEventID":1471074,
         "MainEvent":"State Of Origin Series 2014",
         "OutcomeDateTime":"2014-06-18 20:10:00.0000000",
         "Competition":"State of Origin 2014",
         "Competitors":{
            "ActiveCompetitors":3,
            "Competitors":[
               {
                  "Team":"New South Wales (2 - 1)",
                  "Win":"2.15"                 
               },
               {
                  "Team":"New South Wales (3 - 0)",
                  "Win":"3.05"                
               },
               {
                  "Team":"Queensland (2 - 1)",
                  "Win":"3.30"
               }
            ],
            "TotalCompetitors":3,
            "HasWinOdds":true
         },
         "EventStatus":"Open",
         "IsSuspended":false,
         "AllowBets":true
      },
      "1471074":{
         "EventID":1471074,
         "ParentEventID":0,
         "MainEvent":"State Of Origin Series 2014",  
         "OutcomeDateTime":"2014-07-09 20:10:00.0000000",
         "Competition":"State of Origin 2014",
         "Competitors":{
            "ActiveCompetitors":2,
            "Competitors":[
               {
                  "Team":"New South Wales",
                  "Win":"1.33"             
               },
               {
                  "Team":"Queensland",
                  "Win":"3.30"
               }
            ],
            "TotalCompetitors":2,
            "HasWinOdds":true
         },
         "EventStatus":"Open",
         "IsSuspended":false,
         "AllowBets":true
      }
   },
   "State of Origin 2014 Game 2":{
      "3608662":{
         "EventID":3608662,
         "ParentEventID":3269132,
         "MainEvent":"New South Wales v Queensland",
         "Competitors":{
            "ActiveCompetitors":39,
            "Competitors":[
               {
                  "TeamName":"New South Wales 6-10",
                  "Win":"4.70"              
               },
               {
                  "TeamName":"Queensland 91+",
                  "Win":"201.00"                
               }
            ],
            "TotalCompetitors":39,
            "HasWinOdds":true
         },
         "EventStatus":"Open",
         "IsSuspended":false,
         "AllowBets":true
      }

   }
}
这是我的密码

foreach ($json_a as $root_element => $childnode) {
  echo("{<br />");
    foreach( $childnode as $cKey => $subChild) {

      if($subChild['ParentEventID']=='0')
      {

       echo("Australian Rules : [");
         echo("<br />");
         echo("{<br />");
        echo "MainEvent: ".$subChild['MainEvent'];
        echo "<br />OutcomeDateTime: ".$subChild['OutcomeDateTime'];
         echo "<br />Competitors:[ <br />{";

        if (is_array($subChild['Competitors']['Competitors']) and count ($subChild['Competitors']['Competitors'])  == 2 ) {
            foreach($subChild['Competitors']['Competitors'] as $compKey => $compVal) {
            // Since your array contains Team and TeamName , I use array_key_exists to check whick key to use
             $teamName = array_key_exists('Team',$compVal) ? $compVal['Team'] :  $compVal['Name'];
             $win      = $compVal['Win'];
              echo "<br />Team: ".$teamName;
              echo "<br />Win: ".$win;
               echo "<br /> } , {";
         }
        }
}
    }
foreach($json\u作为$root\u元素=>$childnode){
回声(“{
”); foreach($childnode作为$cKey=>$subChild){ 如果($subChild['ParentEventID']=='0') { echo(“澳大利亚规则:[”); 回声(
); 回声(“{
”); echo“MainEvent:.$subChild['MainEvent']; echo“
OutcomeDateTime:“.$subChild['OutcomeDateTime'”; 回声“
竞争对手:[
{”; 如果(是数组($subChild['Competitors']['Competitors'])和计数($subChild['Competitors']['Competitors'])==2){ foreach($compKey=>$compVal的子孩子['Competitors']['Competitors']{ //由于您的数组包含Team和TeamName,所以我使用array\u key\u exists来检查要使用的whick key $teamName=array_key_存在('Team',$compVal)?$compVal['Team']:$compVal['Name']; $win=$compVal['win']; echo“
团队:.$teamName; 回声“
赢:.$Win; 回声“
,{”; } } } }

我想按OutcomeDateTime对数据进行排序,但最新数据应该是Time。现在+10分钟。我的排序元素在第二级。有没有办法按OutcomeDateTime排序并获得前三名的结果?

ehhh…为什么要尝试使用json而不是使用内置php函数,如
json\u encode()
?我使用json_encode读取json和$json_a=json_decode($json.true)我想按outcomedate排序并获得前三个dataWell这是输出,我想将其作为json响应发送,而这一部分很好,我想按outcomedatetime排序数据,最新的outcomedatetime应该大于datatime。现在+10分钟,或者简单地按outcomedatetime排序json??但即使在排序之后,我仍然不知道明白为什么要自己构建Json。当
$teamName
为“”时会发生什么?