我在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