gpt4 book ai didi

php - 如何对包含对象的 3 维数组进行排序?

转载 作者:搜寻专家 更新时间:2023-10-31 21:22:36 25 4
gpt4 key购买 nike

我正在构建一个 WordPress 站点,我需要在查询运行后对 WP_User_Query 的结果进行排序。对于那些不熟悉的人,它具有如下所示的元素:

Array (
[0] => WP_User Object (
[data] => stdClass Object (
[ID] => 1
[user_login] => MarvinLazer
[user_pass] => $P$BUGHRCjMzlvn7dlGp53UTPC8GMF081/
[user_nicename] => marvinlazer
[user_email] => marvin@lazer.com
[user_url] => http://marvinlazer.com
[user_registered] => 2017-03-04 23:08:08
[user_activation_key] =>
[user_status] => 0
[display_name] => Marvin Lazer
)
[ID] => 1
[caps] => Array (
[subscriber] => 1
)
[cap_key] => wp_capabilities
[roles] => Array (
[0] => subscriber
)
[allcaps] => Array (
[read] => 1
[level_0] => 1
[subscriber] => 1
)
[filter] =>
)
[1] => WP_User Object ( etc. etc.

基于 this very helpful page on PHP array sorting ,我觉得我有点接近了。不幸的是,它只是在代码出现的部分之后给我一个空白页。

          function cmp(array $a, array $b) {
if ($a['data']['display_name'] < $b['data']['display_name']) {
return -1;
} else if ($a['data']['display_name'] > $b['data']['display_name']) {
return 1;
} else {
return 0;
}
}

usort($user_query->results, 'cmp');

有人想指出我做错了什么吗?

最佳答案

这是因为您试图在访问数组元素的方法中访问对象的属性。您不能使用索引来访问对象的属性。您应该使用 -> 而不是 []。你可以查看这个demo说明如何访问对象属性。

引用how to access array/object

将您的$a['data']['display_name']更改为$a->data->display_name,以及您的$b 在比较函数中。

关于php - 如何对包含对象的 3 维数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43461839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com