Javascript 在jQuery或PHP中使用多个值按字母顺序排序JSON/数组
我有以下问题: 正如你在图片上看到的,我有一个下拉框,它不是按国家或城市的字母顺序排序的Javascript 在jQuery或PHP中使用多个值按字母顺序排序JSON/数组,javascript,php,jquery,Javascript,Php,Jquery,我有以下问题: 正如你在图片上看到的,我有一个下拉框,它不是按国家或城市的字母顺序排序的 JSON对象如下所示: [{"HAM": {Name: "Hamburg", Country: "Germany", ...}, "DEL": {Name: "Delhi", Country: "India", ...}, etc.}] 在PHP中,它组装在一个循环中,如下所示:
JSON对象
如下所示:
[{"HAM": {Name: "Hamburg", Country: "Germany", ...},
"DEL": {Name: "Delhi", Country: "India", ...}, etc.}]
在PHP
中,它组装在一个循环中,如下所示:
$locations[$locationCode] = [
'name' => $locationName,
'type' => $locationObject->getType(),
country' => $this->getCountryForLocation($locationName),
'accessSizes' => $accessSizes,
'services' => $services
]
如何在jQuery
或PHP
中先按字母顺序对国家进行排序,然后再对城市进行排序?我更愿意在PHP
中执行此操作
我的问题是我在循环之外尝试它,因此我不再知道
$locationCode
。有人能帮我吗?我尝试了array\u multisort()
来绕过$locationCode
,但不幸的是,它从未起作用。PHP有两个整洁的数组排序函数,分别调用和(如果您想保留键,可以使用这两个函数),这两个函数都允许您编写自定义函数,以任意方式对数组进行排序
<?php
$c = array();
$c["HAL"] = array("City" => "Hamlet", "Country" => "USA");
$c["HUS"] = array("City" => "Houston", "Country" => "USA");
$c["HAN"] = array("City" => "Hannover", "Country" => "Germany");
$c["HAM"] = array("City" => "Hamburg", "Country" => "Germany");
echo "Before Sorting:\r\n<pre>" . print_r($c, true) . "</pre>";
usort($c, "cmp");
echo "After Sorting:\r\n<pre>" . print_r($c, true) . "</pre>";
function cmp ($a, $b) {
$cmp = strcmp($a["Country"], $b["Country"]);
if ($cmp == 0) $cmp = strcmp($a["City"], $b["City"]);
return $cmp;
}
?>
您需要展示您尝试过的内容。。但最终它很可能是一个或+3k的骗局