php – 如何通过每个对象的属性对对象数组进行排序
发布时间:2020-12-13 22:10:26 所属栏目:PHP教程 来源:网络整理
导读:我有一个从eventbrite.com api返回的数据数组,存储在一个名为$restrictedEvents的变量中,它看起来像下面的数据.这只是为了粘贴的一个事件的代表,但它在完整数组中有大约80个这样的stdClass对象. 我想通过每个stdClass对象中的[title]键按字母顺序对此数组进
我有一个从eventbrite.com api返回的数据数组,存储在一个名为$restrictedEvents的变量中,它看起来像下面的数据.这只是为了粘贴的一个事件的代表,但它在完整数组中有大约80个这样的stdClass对象.
我想通过每个stdClass对象中的[title]键按字母顺序对此数组进行排序.我尝试过使用: usort($restrictedEvents,"title"); 但是,这会返回以下错误: Warning: usort() [function.usort]: Invalid comparison function in model.php on line 109 我的猜测是它无法找到标题键,因为它处于下一级别.关于我出错的地方以及我如何按标题排序的任何指示都将非常感激.非常感谢. Array ( [4791063199] => stdClass Object ( [box_header_text_color] => 393837 [link_color] => EE6600 [box_background_color] => FFFFFF [box_border_color] => D9D4D0 [timezone] => Europe/London [organizer] => stdClass Object ( [url] => http://www.eventbrite.com/org/2866607767 [description] => [long_description] => [id] => 2866607767 [name] => B&Q Manifestival ) [background_color] => E3DFDC [id] => 4791063199 [category] => [box_header_background_color] => F0ECE9 [capacity] => 20 [num_attendee_rows] => 0 [title] => Closed Event Test [start_date] => 2012-11-07 19:00:00 [status] => Live [description] => Lorem ipsum [end_date] => 2012-11-07 21:00:00 [tags] => [timezone_offset] => GMT+0000 [text_color] => 393837 [title_text_color] => [password] => [tickets] => Array ( [0] => stdClass Object ( [ticket] => stdClass Object ( [description] => [end_date] => 2012-11-07 17:00:00 [min] => 1 [max] => 1 [price] => 0.00 [quantity_sold] => 0 [visible] => true [currency] => GBP [quantity_available] => 20 [type] => 0 [id] => 15940001 [name] => Manifestival Event ) ) ) [created] => 2012-11-07 10:40:36 [url] => http://www.eventbrite.com/event/4791063199 [box_text_color] => 393837 [privacy] => Private [venue] => stdClass Object ( [city] => [name] => HR Training Room [country] => [region] => [longitude] => 0 [postal_code] => [address_2] => [address] => [latitude] => 0 [country_code] => [id] => 2619469 [Lat-Long] => 0.0 / 0.0 ) [modified] => 2012-11-07 10:47:20 [repeats] => no ) 解决方法
要使用的第二个参数应该是一个函数.请参阅
http://php.net/manual/en/function.usort.php.您需要将其传递给以下函数:
function cmp($a,$b) { return strcmp($a->title,$b->title); } 我想你会把它称为usort($restrictedEvents,“cmp”);. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |