我一直在搜索这个,但在任何地方找不到任何解决方案。我想用特定的索引重新命令我的数组。
像这样:
$scoreboard = array(
'foo' => array(
'score' => 580,
'game' => 'google',
),
'bar' => array(
'score' => 1385,
'game' => 'facebook',
),
'car' => array(
'score' => 750,
'game' => 'tweet',
),
);
输出应该是这样的:
$scoreboard = array(
'bar' => array(
'score' => 1385,
'game' => 'facebook',
),
'car' => array(
'score' => 750,
'game' => 'tweet',
),
'foo' => array(
'score' => 580,
'game' => 'google',
),
);
看到数组是按每个项目的“得分”索引重新排列的。这里有什么帮助吗?
答案 0 :(得分:3)
在我建议使用uasort功能的地方扩展我的评论,这是一个工作示例:http://codepad.org/fBSqHNCC
答案 1 :(得分:1)
与评论中的mishu提及一样,您可以使用uasort
- 函数
示例:强>
$scoreboard = array(
'foo' => array(
'score' => 580,
'game' => 'google',
),
'bar' => array(
'score' => 1385,
'game' => 'facebook',
),
'car' => array(
'score' => 750,
'game' => 'tweet',
),
);
function arrayCompareScore( $a, $b ) {
if ( $a['score'] == $b['score'] ) {
return 0;
}
return ( $a['score'] > $b['score'] ) ? -1 : 1;
}
uasort( $scoreboard, 'arrayCompareScore' );
print_r( $scoreboard );