php - 按索引对 stdClass 对象进行排序

标签 php arrays sorting object

我在 stackoverflow 上看到过一百万个类似的问题,但我能找到的没有一个涉及对对象的实际索引值进行排序。

我有一个标准对象,我给它一个值($vid)来排序,而不是它自己增量填充。

foreach ($array_videos as $v) {
            $govideo = $this->staff_model->get_video($v->vid);
            $goforit[$v->vid] = $vimeo->call('vimeo.videos.getInfo', array('video_id' => $govideo->video_id));
}

当我这样做时,我收到以下输出:

[33] => stdClass Object ...
[12] => stdClass Object ...
[55] => stdClass Object ...
[61] => stdClass Object ...

我想按对象索引、ASC 或 DESC 对该对象数组进行排序。例如:

[61] => stdClass Object ...
[55] => stdClass Object ...
[33] => stdClass Object ...
[12] => stdClass Object ...

我尝试过 ksort 和一些不同的 usort 函数。我似乎无法理解这一点。

如有任何帮助,我们将不胜感激。

最佳答案

ksort()就可以了:

ksort($array_videos);

ksort 将以 ASC 形式对数组键进行排序。您可以使用 array_reverse() 快速反转顺序:

$array_videos = array_reverse($array_videos);

对于您的现实世界示例,您可以执行以下操作之一:

foreach (ksort($array_videos) as $v)

foreach (array_reverse(ksort($array_videos)) as $v)

更好!! 按照 Jim 的建议将排序反转为 DESC ,您可以使用krsort() :

ksort($array_videos); //ASC
krsort($array_videos); //DESC

关于php - 按索引对 stdClass 对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14350788/

相关文章:

php - Laravel 5.4 需要通过 Eloquent 关系获取不同的记录

php - 如何将关联数组的 PHP 数组传输到 javascript?

Ruby 解包数组以阻止

c - 我的简单程序中的 "value is neither array nor pointer nor vector"

java - 按对象中的值对对象进行排序

c - 使用具有结构的指针 C 的选择排序

php - 在服务器上用 PHP 解析 HTML 还是在最终用户端用 JavaScript 解析 HTML 会更好?

PHP MySQL 帖子表单

ruby - 按值降序排列散列,然后按升序键入 ruby

javascript - 如何获取动态给定 ID 的元素的 ID?