Php 按内部值对多维数组排序
我想使用PHP函数按状态对数组进行排序。我该怎么办 以下是该阵列的一个示例:Php 按内部值对多维数组排序,php,arrays,sorting,Php,Arrays,Sorting,我想使用PHP函数按状态对数组进行排序。我该怎么办 以下是该阵列的一个示例: Array ( [0] => stdClass Object ( [status_id] => 4 [status_content] => {"text":"DET VIRKER JO IKKE!!!! ### >"} [status_likes] => [status
Array
(
[0] => stdClass Object
(
[status_id] => 4
[status_content] => {"text":"DET VIRKER JO IKKE!!!! ### >"}
[status_likes] =>
[status_dislikes] =>
[status_owner] => 20
)
[1] => stdClass Object
(
[status_id] => 2
[status_content] => {"yt_vid":"Hb3MWuZT_W0","text":"Det her er jo bare awesome!!!"}
[status_likes] =>
[status_dislikes] =>
[status_owner] => 20
)
[2] => stdClass Object
(
[status_id] => 8
[status_content] => {"text":"Hej"}
[status_likes] =>
[status_dislikes] =>
[status_owner] => 1
)
[3] => stdClass Object
(
[status_id] => 7
[status_content] => {"text":"ff"}
[status_likes] =>
[status_dislikes] =>
[status_owner] => 1
)
[4] => stdClass Object
(
[status_id] => 6
[status_content] => {"text":"h"}
[status_likes] =>
[status_dislikes] =>
[status_owner] => 1
)
[5] => stdClass Object
(
[status_id] => 5
[status_content] => {"text":""}
[status_likes] =>
[status_dislikes] =>
[status_owner] => 1
)
[6] => stdClass Object
(
[status_id] => 3
[status_content] => {"yt_vid":"PSLDZVh1Vtw","text":"This is really funny"}
[status_likes] =>
[status_dislikes] =>
[status_owner] => 1
)
[7] => stdClass Object
(
[status_id] => 1
[status_content] => {"text":"This works, great! huh?"}
[status_likes] =>
[status_dislikes] =>
[status_owner] => 1
)
)
您需要使用数组\多排序 首先循环获取一个简单的数组,其中包含toy希望根据状态id进行排序的所有项目,然后将该变量与要在数组中进行排序的数组一起使用。\u multisort一个选项是与自定义排序函数一起使用。下面是一个小函数,它将根据某些属性名称为您构建一个闭包:
function buildSorter($key) {
return function ($a, $b) use ($key) { return strnatcmp($a->$key, $b->$key); };
}
使用此功能,您可以:
usort($data, buildSorter('status_content'));
或
同样轻松。谢谢你的帮助!我知道,通过仔细观察,我终于找到了答案 看一看 usort$r,函数$a,$b{ 返回$a['status_id']-$b['status_id'];
}; 您必须阅读上一个问题的顶部答案之外的内容,以获得专门适用于您的问题的信息,因为顶部答案似乎是允许我演示几种排序算法在PHP中的实现。
usort($data, buildSorter('status_owner'));