首页 > 解决方案 > 数组 - 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,
    }
 ]

标签: phparrays

解决方案


试试这种方式:

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;

推荐阅读