我有一个从数据库返回的对象数组。未排序数组上的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属性对数组进行排序,所以我使用了一个自定义排序函数(在这里找到)
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升序排序的。我需要做什么才能让它工作?
您的自定义排序函数需要返回值:
function my_search_sort($a, $b) {
return strcmp($a->nid, $b->nid);
}
编辑我已经更新了你引用的另一个答案的代码,它是不正确的。