我有一系列我从数据库中提取的产品。我使用以下代码验证了这些是正确的:
$unsorted_products = products::get( array( 'collection' => $collection->id ) );
die(print_r($unsorted_products));
......结果如我所料。问题是,我需要将结果基本上按父类别和类别分组。他们如何在每个分组中排序,我不在乎。鉴于我无权更改通过SQL检索数据的模型,我需要通过PHP对此数组进行排序。我正在使用以下代码:
$products = usort($unsorted_products, function ($a, $b) {
return strcmp(
$a->parentcategory.$a->categoryname,
$b->parentcategory.$b->categoryname
);
});
...但是转储$products
数组会发现它只保留值1.任何想法我做错了什么?我已经验证了我试图访问的属性确实存在于每个对象中。
感谢。
答案 0 :(得分:4)
对输入数组进行排序。
来自用户手册:
成功时返回TRUE,失败时返回FALSE。
答案 1 :(得分:1)
你做错了。 usort不返回数组,它返回ether true或false。它会将您传递的数组更改为第一个参数。
执行代码后,$ unsorted_products变为排序数组。这样做:
$products = products::get( array( 'collection' => $collection->id ) );
和此:
usort($products, function ($a, $b) {
return strcmp(
$a->parentcategory.$a->categoryname,
$b->parentcategory.$b->categoryname
);
});