按stdClass对象的索引排序


Sort stdClass object by its index

我在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和一些不同的排序函数。我不太明白这是怎么回事。

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的建议,您可以使用krsort():

将排序反转为DESC
ksort($array_videos); //ASC
krsort($array_videos); //DESC