我试图通过多个键对多维数组进行排序,我不知道从哪里开始.我看着uasort,但不太确定如何为我需要的东西编写函数.
我需要按州,然后是event_type,然后按日期排序.
我的数组看起来像这样:
Array
(
[0] => Array
(
[ID] => 1
[title] => Boring Meeting
[date_start] => 2010-07-30
[time_start] => 06:45:PM
[time_end] =>
[state] => new-york
[event_type] => meeting
)
[1] => Array
(
[ID] => 2
[title] => Find My Stapler
[date_start] => 2010-07-22
[time_start] => 10:45:AM
[time_end] =>
[state] => new-york
[event_type] => meeting
)
[2] => Array
(
[ID] => 3
[title] => Mario Party
[date_start] => 2010-07-22
[time_start] => 02:30:PM
[time_end] => 07:15:PM
[state] => …Run Code Online (Sandbox Code Playgroud) 在PHP中对对象进行排序的优雅方法是什么?我很想完成类似的事情.
$sortedObjectArary = sort($unsortedObjectArray, $Object->weight);
Run Code Online (Sandbox Code Playgroud)
基本上指定我想要排序的数组以及我想要排序的字段.我研究了多维数组排序,可能会有一些有用的东西,但我没有看到任何优雅或明显的东西.
我有一个数组:
Array (
[0] => stdClass Object (
[user_id] => 1
[ID] => 1
[user_login] => admin
[display_name] => admin
[user_email] => webbinformation@nacka.se
[meta_value] => a:1:{s:13:\"administrator\";s:1:\"1\";}
)
[1] => stdClass Object (
[user_id] => 4
[ID] => 4
[user_login] => ungtinflytande
[display_name] => ungtinflytande
[user_email] => klarakviberg@gmail.com
[meta_value] => a:1:{s:13:\"administrator\";s:1:\"1\";}
)
[2] => stdClass Object (
[user_id] => 5
[ID] => 5
[user_login] => inflytandepilot
[display_name] => inflytandepilot
[user_email] => hildalundgren@hotmail.com
[meta_value] => a:1:{s:6:\"author\";s:1:\"1\";}
)
[3] => stdClass Object ( …Run Code Online (Sandbox Code Playgroud) 我有一个名为Contact的自定义帖子类型,其中包含姓名,姓氏,电话号码等自定义字段.
在管理部分,我们按时间顺序对它们进行了排序,但是我需要默认按姓氏排序.
我在这里阅读了所有其他解决方案,但没有一个能够工作,包括:
function set_post_order_in_admin( $wp_query ) {
global $pagenow;
if ( is_admin() && 'edit.php' == $pagenow && !isset($_GET['orderby'])) {
$wp_query->set( 'orderby', 'surname' );
$wp_query->set( 'order', 'ASC' );
}
}
add_filter('pre_get_posts', 'set_post_order_in_admin' );
Run Code Online (Sandbox Code Playgroud)
但无论我试图排序的哪个领域,都没有任何变化,除了切换ASC/DESC似乎改变为反向时间顺序.
我究竟做错了什么?
我有一个相当大的数组,看起来像
Array(
[0] => stdClass Object
(
[id] => 8585320
[title] => the title
[type] => page
[url] => link.com
[excerpt] => brief description
)
[1] => stdClass Object
(
[id] => 8585320
[title] => the title
[type] => page
[url] => link.com
[excerpt] => brief description
)
)
Run Code Online (Sandbox Code Playgroud)
我对阵列的形成方式没有明显的控制,以及它是如何出现的,似乎它几乎没有任何逻辑.但我坚持下去.所以我需要做的是基本上对每个stdClass对象进行数值排序,然后确保id从最大到最小,而不是从最小到最大.一直保持数组对象组合的当前结构
我现在甚至无法开始思考如何按照我需要的方式对其进行排序.因为它已经足够长的一天了.
UPDATE
public function updateRet($a, $b) {
return $b->id - $a->id;
}
usort($ret, 'updateRet');
Run Code Online (Sandbox Code Playgroud) 如何在php中用'pos'对这个对象进行排序?
Array (
[0] => stdClass Object ( [str] => Mondays [pos] => 170 )
[1] => stdClass Object ( [str] => Tuesdays [pos] => 299 )
[2] => stdClass Object ( [str] => Wednesdays [pos] => 355 )
[3] => stdClass Object ( [str] => Thursdays [pos] => 469 )
[4] => stdClass Object ( [str] => Fridays [pos] => 645 )
[5] => stdClass Object ( [str] => Mondays [pos] => 972 )
[6] => stdClass Object ( …Run Code Online (Sandbox Code Playgroud)