php - 数组 - php错误排序
问题描述
我编写了一个 API 调用,它应该在我提供的代码中从数据库中返回和排序值。
无论如何,它可以工作,但不是以应有的方式。
$result = array();
foreach ($myResults as $myResult => $label) {
$result['id'][$myResult] = $label["id"];
$result['name'][$myResult] = $label["name"];
$result['totalCollected'][$myResult] = $label["totalCollected"];
}
return $result;
所以,这是我的代码,它返回..
"data": {
"id": [
1,
2
],
"name": [
"Name 1",
"Name 2"
],
"totalCollected": [
2500,
2000
]
},
我想迭代一个数组看起来像这样..
[
{
"id": 1,
"name": Name 1,
"value": 2500,
},
{
"id": 2,
"name": Name 2,
"value": 2000,
}
]
解决方案
试试这种方式:
function sort_objects_by_total($a, $b) {
if($a->totalCollected == $b->totalCollected){ return 0 ; }
return ($a->totalCollected < $b->totalCollected) ? -1 : 1;
}
$result = array();
foreach ($myResults as $key => $value){
$result[$key]['id'] = $value["id"];
$result[$key]['name'] = $value["name"];
$result[$key]['totalCollected']= $value["totalCollected"];
}
usort($result, 'sort_objects_by_total');
$sorted_result=array_reverse($result)
return $sorted_result;
推荐阅读
- amazon-web-services - Assistance with Header based routing with AWS App Mesh
- java - How to have different color for line and text in StrikethroughSpan?
- python - Problem with grouping and counting in python
- google-apps-script - How to import csv file from the link in gmail to google sheet with apps script?
- github - Can I prevent Github Actions from updating status checks?
- python - Python-Z3:Python 的断言不成立
- scala - 如何在 Azure 数据工厂链接服务中设置 spark 执行器内存
- java - How to improve performance of String.split?
- excel - Is it possible to make a number sequence based on a condition?
- serialization - Is a "local memory program" the same thing as a "serial program"?