在PHP中按对象id对数组排序

在PHP中按对象id对数组排序,php,arrays,sorting,Php,Arrays,Sorting,我有一个需要按父对象排序的对象数组(从最低到最高) 以下是阵列的结构: [{ "term_id": 9, "name": "pve", "slug": "pve", "term_group": 0, "term_taxonomy_id": 9, "taxonomy": "post_tag", "description": "pve guides", "parent": 15, "count": 0, "filter": "raw" }, { "term

我有一个需要按父对象排序的对象数组(从最低到最高)

以下是阵列的结构:

[{
  "term_id": 9,
  "name": "pve",
  "slug": "pve",
  "term_group": 0,
  "term_taxonomy_id": 9,
  "taxonomy": "post_tag",
  "description": "pve guides",
  "parent": 15,
  "count": 0,
  "filter": "raw"
}, {
  "term_id": 8,
  "name": "pvp",
  "slug": "pvp",
  "term_group": 0,
  "term_taxonomy_id": 8,
  "taxonomy": "post_tag",
  "description": "pvp guides",
  "parent": 15,
  "count": 2,
  "filter": "raw"
}, {
  "term_id": 11,
  "name": "greataxe",
  "slug": "greataxe",
  "term_group": 0,
  "term_taxonomy_id": 11,
  "taxonomy": "post_tag",
  "description": "greataxe guides",
  "parent": 14,
  "count": 1,
  "filter": "raw"
}, {
  "term_id": 12,
  "name": "musket",
  "slug": "musket",
  "term_group": 0,
  "term_taxonomy_id": 12,
  "taxonomy": "post_tag",
  "description": "musket guides",
  "parent": 14,
  "count": 0,
  "filter": "raw"
}, {
  "term_id": 13,
  "name": "spear",
  "slug": "spear",
  "term_group": 0,
  "term_taxonomy_id": 13,
  "taxonomy": "post_tag",
  "description": "",
  "parent": 14,
  "count": 1,
  "filter": "raw"
}, {
  "term_id": 10,
  "name": "sword",
  "slug": "sword",
  "term_group": 0,
  "term_taxonomy_id": 10,
  "taxonomy": "post_tag",
  "description": "sword guides",
  "parent": 14,
  "count": 0,
  "filter": "raw"
}, {
  "term_id": 15,
  "name": "Play Type",
  "slug": "playtype",
  "term_group": 0,
  "term_taxonomy_id": 15,
  "taxonomy": "post_tag",
  "description": "",
  "parent": 0,
  "count": 0,
  "filter": "raw"
}, {
  "term_id": 14,
  "name": "Weapons",
  "slug": "weapons",
  "term_group": 0,
  "term_taxonomy_id": 14,
  "taxonomy": "post_tag",
  "description": "",
  "parent": 0,
  "count": 0,
  "filter": "raw"
}]
我试着用下面的方法来分类

$new_array = usort($tags, function($a, $b) {
   return $b->parent - $a->parent;
})
我想要的结果是一个数组,它按父级重新组织数组(因此父级为0的所有对象都位于顶部)。相反,我得到的是返回的值true

任何帮助都将不胜感激。

usort()直接在提供的数组上执行排序。返回值仅返回布尔值,告知排序是否成功

此外,

如果第一个参数分别小于、等于或大于第二个参数,则比较函数必须返回小于、等于或大于零的整数

因此,您应该提供
$a->parent-$b->parent
,以便按升序对项目进行排序

usort($tags,function($a,$b){
返回$a->parent-$b->parent;
});
$new_数组=$tags;//$tags现在已排序
在适当位置修改阵列。否则,您的代码看起来很好,除非它应该是
$a->parent-$b->parent
,如果我没有弄错的话。所有排序函数都已就绪。