Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.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/1/php/268.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/7/elixir/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
如何在JavaScript中实现排序,如下面PHP中的示例所示_Javascript_Php_Arrays_Json_Sorting - Fatal编程技术网

如何在JavaScript中实现排序,如下面PHP中的示例所示

如何在JavaScript中实现排序,如下面PHP中的示例所示,javascript,php,arrays,json,sorting,Javascript,Php,Arrays,Json,Sorting,请就如何在JavaScript上实现这一点提供帮助。我有数据类型。这种排序的目的是我有一个对象列,其中的列不是按要求排列的。例如,下面的函数只是排列数组列。我已经在本地机器上测试了这段代码,这是我得到的输出 <?php $data = '[ { "from": "Barcelona", "to": "New York", "instruction": "

请就如何在JavaScript上实现这一点提供帮助。我有数据类型。这种排序的目的是我有一个对象列,其中的列不是按要求排列的。例如,下面的函数只是排列数组列。我已经在本地机器上测试了这段代码,这是我得到的输出

<?php
$data =  '[
  {
    "from": "Barcelona",
    "to": "New York",
    "instruction": "",
    "time": "2018-02-02 20:05",
    "transport": "Flight",
    "transportno": "B33",
    "seatno": "Y15"
  },
  {
    "from": "Barcelona",
    "to": "Gerona",
    "instruction": "",
    "time": "2018-02-02 20:05",
    "transport": "Bus",
    "transportno": "M31, M32, M33",
    "seatno": "Any"
  },
  {
    "from": "Madrid",
    "to": "Barcelona",
    "instruction": "",
    "time": "2018-02-02 20:05",
    "transport": "Bus",
    "transportno": "M31, M32, M33",
    "seatno": "Any"
  },
  {
    "from": "New York",
    "to": "Stockholm",
    "instruction": "",
    "time": "2018-02-02 20:05",
    "transport": "Flight",
    "transportno": "M31, M32, M33",
    "seatno": "Any"
  },
  {
    "from": "Gerona",
    "to": "Barcelona",
    "instruction": "",
    "time": "2018-02-02 20:05",
    "transport": "Bus",
    "transportno": "M31, M32, M33",
    "seatno": "Any"
  }
]';
输出

排列 ( [0]=>阵列 ( [来自]=>马德里 [致]=>巴塞罗那 [说明]=> [时间]=>2018-02-02 20:05 [传输]=>总线 [transportno]=>M31、M32、M33 [seatno]=>任何 )

) [在0.1s内完成]

如何在JavaScript中获得此结果。感谢您的帮助。

在javascript中,请参阅

var数据=[
{
“发件人”:“巴塞罗那”,
“致”:“纽约”,
“指示”:“,
“时间”:“2018-02-02 20:05”,
“运输”:“飞行”,
“运输编号”:“B33”,
“seatno”:“Y15”
},
{
“发件人”:“巴塞罗那”,
“致”:“Gerona”,
“指示”:“,
“时间”:“2018-02-02 20:05”,
“交通”:“公共汽车”,
“运输编号”:“M31、M32、M33”,
“seatno”:“任何”
},
{
“来自”:“马德里”,
“致”:“巴塞罗那”,
“指示”:“,
“时间”:“2018-02-02 20:05”,
“交通”:“公共汽车”,
“运输编号”:“M31、M32、M33”,
“seatno”:“任何”
},
{
“发件人”:“纽约”,
“致”:“斯德哥尔摩”,
“指示”:“,
“时间”:“2018-02-02 20:05”,
“运输”:“飞行”,
“运输编号”:“M31、M32、M33”,
“seatno”:“任何”
},
{
“from”:“Gerona”,
“致”:“巴塞罗那”,
“指示”:“,
“时间”:“2018-02-02 20:05”,
“交通”:“公共汽车”,
“运输编号”:“M31、M32、M33”,
“seatno”:“任何”
}
];
var sortedData=data.sort(函数(a,b){
返回a['到']==b['从']]?0:1;
} );
控制台日志(sortedData),请参见

var数据=[
{
“发件人”:“巴塞罗那”,
“致”:“纽约”,
“指示”:“,
“时间”:“2018-02-02 20:05”,
“运输”:“飞行”,
“运输编号”:“B33”,
“seatno”:“Y15”
},
{
“发件人”:“巴塞罗那”,
“致”:“Gerona”,
“指示”:“,
“时间”:“2018-02-02 20:05”,
“交通”:“公共汽车”,
“运输编号”:“M31、M32、M33”,
“seatno”:“任何”
},
{
“来自”:“马德里”,
“致”:“巴塞罗那”,
“指示”:“,
“时间”:“2018-02-02 20:05”,
“交通”:“公共汽车”,
“运输编号”:“M31、M32、M33”,
“seatno”:“任何”
},
{
“发件人”:“纽约”,
“致”:“斯德哥尔摩”,
“指示”:“,
“时间”:“2018-02-02 20:05”,
“运输”:“飞行”,
“运输编号”:“M31、M32、M33”,
“seatno”:“任何”
},
{
“from”:“Gerona”,
“致”:“巴塞罗那”,
“指示”:“,
“时间”:“2018-02-02 20:05”,
“交通”:“公共汽车”,
“运输编号”:“M31、M32、M33”,
“seatno”:“任何”
}
];
var sortedData=data.sort(函数(a,b){
返回a['到']==b['从']]?0:1;
} );

控制台日志(sortedData)我认为您正在尝试按键对对象数组进行排序,请看:我完全按照您没有尝试的方式进行了排序,但没有给出预期的结果。请检查php usort代码的上述输出。因为它应该提供像巴塞罗那到Gerona-Gerona到巴塞罗那-巴塞罗那到纽约-纽约到斯德哥尔摩这样的链接-数据正是出于这个原因显示的,但是每个机场都相互连接,您可以检查php输出。我想您正试图按键对对象数组进行排序,看:我完全按照你没有尝试的方式尝试,但没有达到预期的效果。请检查php usort代码的上述输出。因为它应该提供像巴塞罗那到Gerona-Gerona到巴塞罗那-巴塞罗那到纽约-纽约到斯德哥尔摩这样的链接-数据正是出于这个原因而呈现的,但是每个机场都相互连接,您可以检查php输出。我完全按照您没有尝试的方式尝试,但没有给出预期的结果。请检查php usort代码的上述输出。因为它应该提供像巴塞罗那到Gerona-Gerona到巴塞罗那-巴塞罗那到纽约-纽约到斯德哥尔摩这样的链接-数据正是出于这个原因显示的,但是每个机场都相互连接,您可以检查php输出。@user3201528请您详细说明这个问题。我已经粘贴了上面代码的输出,看起来是正确的。嗨。我没有收到与您发布的相同的输出,当我运行代码段时,我会收到不同的输出。请检查此链接,我在@user3201528接收的内容您需要记录
sortedData
变量,而不是
数据
变量。更改为
console.log(sortedData)
。希望这能有所帮助。我已经尝试过,但仍然是一样的。请检查github.com/qdcmedia123/test123/blob/master/sorttest.jsI的链接。我完全按照您没有尝试的方式进行了尝试,但没有给出预期的结果。请检查php usort代码的上述输出。因为它应该提供像巴塞罗那到Gerona-Gerona到巴塞罗那-巴塞罗那到纽约-纽约到斯德哥尔摩这样的链接-数据正是出于这个原因显示的,但是每个机场都相互连接,您可以检查php输出。@user3201528请您详细说明这个问题。我已经粘贴了上面代码的输出,看起来是正确的。嗨。我没有收到与您发布的相同的输出,当我运行代码段时,我会收到不同的输出。请检查此链接,我在@user3201528接收的内容您需要记录
sortedData
变量,而不是
数据
变量。更改为
console.log(sortedData)
。希望这有帮助。我已经尝试过了,但仍然一样。请查看github.com/qdcmedia123/test123/blob/master/sorttest.js链接
$data_decode = json_decode($data, true);

usort($data_decode, function ($a, $b) {
  return $a['to'] === $b['from'] ? 0 : 1;
});


print_r($data_decode);
[1] => Array
    (
        [from] => Barcelona
        [to] => Gerona
        [instruction] => 
        [time] => 2018-02-02 20:05
        [transport] => Bus
        [transportno] => M31, M32, M33
        [seatno] => Any
    )

[2] => Array
    (
        [from] => Gerona
        [to] => Barcelona
        [instruction] => 
        [time] => 2018-02-02 20:05
        [transport] => Bus
        [transportno] => M31, M32, M33
        [seatno] => Any
    )

[3] => Array
    (
        [from] => Barcelona
        [to] => New York
        [instruction] => 
        [time] => 2018-02-02 20:05
        [transport] => Flight
        [transportno] => B33
        [seatno] => Y15
    )

[4] => Array
    (
        [from] => New York
        [to] => Stockholm
        [instruction] => 
        [time] => 2018-02-02 20:05
        [transport] => Flight
        [transportno] => M31, M32, M33
        [seatno] => Any
    )