我有一个从数据库返回的对象数组。未排序数组上的print_r如下所示:
Array
(
[0] => stdClass Object
(
[nid] => 53162
[title] => Kroger 'Giving Hope' Standee
[path] => node/53162
)
[1] => stdClass Object
(
[nid] => 64185
[title] => Kroger 'Giving Hope' Stanchion Sign
[path] => node/64185
)
[2] => stdClass Object
(
[nid] => 52190
[title] => Betty Crocker Kroger 'Giving Hope' Shipper
[path] => node/52190
)
[3] => stdClass Object
(
[nid] => 53159
[title] => Frito-Lay Kroger 'Giving Hope' Packaging
[path] => node/53159
)
[4] => stdClass Object
(
[nid] => 53164
[title] => Nabisco Kroger 'Giving Hope' Violator
[path] => node/53164
)
[5] => stdClass Object
(
[nid] => 52607
[title] => Doritos Kroger 'Giving Hope' Packaging
[path] => node/52607
)
[6] => stdClass Object
(
[nid] => 52720
[title] => Kroger Big K Cola 'Giving Hope' Packaging
[path] => node/52720
)
[7] => stdClass Object
(
[nid] => 52729
[title] => Windex Kroger 'Giving Hope' Packaging
[path] => node/52729
)
[8] => stdClass Object
(
[nid] => 52731
[title] => Ziploc Kroger 'Giving Hope' Packaging
[path] => node/52731
)
[9] => stdClass Object
(
[nid] => 53157
[title] => Stacy's Kroger 'Giving Hope' Cut Cases
[path] => node/53157
)
)
我想通过nid属性对数组进行排序,因此我使用了自定义的usort函数(找到here。)
function my_search_sort($a, $b) {
strcmp($a->nid, $b->nid);
}
我这样称呼它:
usort($docs, 'my_search_sort');
然后又做了另一个print_r。结果如下所示:
Array
(
[0] => stdClass Object
(
[nid] => 52720
[title] => Kroger Big K Cola 'Giving Hope' Packaging
[path] => node/52720
)
[1] => stdClass Object
(
[nid] => 52729
[title] => Windex Kroger 'Giving Hope' Packaging
[path] => node/52729
)
[2] => stdClass Object
(
[nid] => 52731
[title] => Ziploc Kroger 'Giving Hope' Packaging
[path] => node/52731
)
[3] => stdClass Object
(
[nid] => 53157
[title] => Stacy's Kroger 'Giving Hope' Cut Cases
[path] => node/53157
)
[4] => stdClass Object
(
[nid] => 52607
[title] => Doritos Kroger 'Giving Hope' Packaging
[path] => node/52607
)
[5] => stdClass Object
(
[nid] => 53164
[title] => Nabisco Kroger 'Giving Hope' Violator
[path] => node/53164
)
[6] => stdClass Object
(
[nid] => 64185
[title] => Kroger 'Giving Hope' Stanchion Sign
[path] => node/64185
)
[7] => stdClass Object
(
[nid] => 52190
[title] => Betty Crocker Kroger 'Giving Hope' Shipper
[path] => node/52190
)
[8] => stdClass Object
(
[nid] => 53159
[title] => Frito-Lay Kroger 'Giving Hope' Packaging
[path] => node/53159
)
[9] => stdClass Object
(
[nid] => 53162
[title] => Kroger 'Giving Hope' Standee
[path] => node/53162
)
)
它显然在做某事,但根据nid,它没有按升序排序。我需要做些什么才能让它发挥作用?
答案 0 :(得分:5)
您的自定义排序功能需要返回值:
function my_search_sort($a, $b) {
return strcmp($a->nid, $b->nid);
}
修改强> 我更新了other answer you referenced上的代码,这是不正确的。