php - 按 JSON 排序
问题描述
我们正在从 API 导入我们的 JSON。JSON 运行良好但无序
我们想通过name字段对JSON文件进行排序,我们使用了uasort但似乎没有生效?
$url="https://dev-api.ourwebsite.com";
$ch = curl_init();
// Disable SSL verification
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// Will return the response, if false it print the response
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Set the url
curl_setopt($ch, CURLOPT_URL,$url);
// Execute
$result=curl_exec($ch);
// DUMPING THE JSON
$json=json_decode($result, true);
uasort($json, 'name');
foreach($json as $value) {
$course_name=$value["name"];
}
解决方案
usort()(或uasort()如果您需要保留数组的键)是您需要的:
<?php
// mocking some data
$json = [
["name" => "paul"],
["name" => "jeff"],
["name" => "anna"]
];
uasort($json,
// this callable needs to return 1 or -1, depending on how you want it to sort
function($a, $b) {
if($a['name']>$b['name']) {
return 1;
} else {
return -1;
}
});
var_dump($json);
foreach($json as $value) {
$course_name=$value["name"];
echo $course_name."<br>";
}
// output:
array(3) {
[2]=>
array(1) {
["name"]=>
string(4) "anna"
}
[1]=>
array(1) {
["name"]=>
string(4) "jeff"
}
[0]=>
array(1) {
["name"]=>
string(4) "paul"
}
}
anna
jeff
paul
推荐阅读
- html - Bootstrap:当您滚动到页面中的某个点时,如何更改顶部菜单(即使用 CSS 从透明更改为不透明)?
- sql - 过滤具有奇怪格式的日期数据集
- r - 用长字符串中特定位置的其他字符替换一个字符,并将更改后的字符串在R中递归地保存为新字符串
- c# - 在材料设计表中仅显示不可为空的行
- hive - date_format() where 子句中带有 <= 或 <= 的意外结果
- visual-studio - 代码 。不在视觉工作室工作
- android - 如何从 FIrebase 实时数据库中获取一个孩子而不是整个列表
- c# - 实施主动/被动集群:如何将 Oracle 用于我的分布式锁?
- javascript - 无法从 Google 脚本返回二维数组以在我的 HTML 中使用
- sql - 按复杂查询分组