我编写了一个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;
您可以尝试确保结果项是对象。
$result = array();
foreach ($myResults as $myResult){
$result[] = (object)array(
'id' => $myResult["id"],
'name' => $myResult["name"],
'value'=> $myResult["totalCollected"]
);
}
return $result;
所以,我这样做了。谢谢你的回复。
foreach ($schoolResults as $schoolResult => $label) {
$result['data'][$schoolResult]["id"] = $label["id"];
$result['data'][$schoolResult]["name"] = $label["name"];
$result['data'][$schoolResult]["totalCollected"] = $label["totalCollected"];
}
return $result;