php:重新排序数组及其子键
php: Reordering an array and its subkeys
我主要是想做一个排行榜系统。我需要在我的 .yml 文件中放入两种类型的数据:玩家的名字和他们的分数。
这是一个变量转储:
array(3) {
[0]=>
array(2) {
[0]=>
string(10) "samueljh1_"
[1]=>
int(3)
}
[1]=>
array(2) {
[0]=>
string(12) "samueljh1_54"
[1]=>
int(1)
}
[2]=>
array(2) {
[0]=>
string(11) "samueljh1_1"
[1]=>
int(8)
}
所以,我想做的是对这个数组进行排序,所以这是按数字顺序排列的 - 整数所在的位置。
基本上,将上面的 var 转储转换为如下内容:
array(3) {
[0]=>
array(2) {
[0]=>
string(11) "samueljh1_1"
[1]=>
int(8)
}
array(2) {
[1]=>
string(10) "samueljh1_"
[1]=>
int(3)
}
[2]=>
array(2) {
[0]=>
string(12) "samueljh1_54"
[1]=>
int(1)
}
}
如果这不可能,是否有任何替代方法来存储此数据?
非常感谢,- Sam。
首先,我建议使用玩家名称作为得分值的关联键,并简化数组结构,如下所示:
$testArray = array("samueljh1_" => 3, "samueljh1_54" => 1, "samueljh1_1" => 8);
这使得数组更易于解析,并使数据结构更类似于您拥有的数据之间的关系。那么函数arsort()
就是你要找的反向排序的函数:
arsort($testArray, SORT_NUMERIC); // $testArray is passed by reference
var_dump($testArray);
产量
array(3) {
["samueljh1_1"]=>
int(8)
["samueljh1_"]=>
int(3)
["samueljh1_54"]=>
int(1)
}
我主要是想做一个排行榜系统。我需要在我的 .yml 文件中放入两种类型的数据:玩家的名字和他们的分数。
这是一个变量转储:
array(3) {
[0]=>
array(2) {
[0]=>
string(10) "samueljh1_"
[1]=>
int(3)
}
[1]=>
array(2) {
[0]=>
string(12) "samueljh1_54"
[1]=>
int(1)
}
[2]=>
array(2) {
[0]=>
string(11) "samueljh1_1"
[1]=>
int(8)
}
所以,我想做的是对这个数组进行排序,所以这是按数字顺序排列的 - 整数所在的位置。
基本上,将上面的 var 转储转换为如下内容:
array(3) {
[0]=>
array(2) {
[0]=>
string(11) "samueljh1_1"
[1]=>
int(8)
}
array(2) {
[1]=>
string(10) "samueljh1_"
[1]=>
int(3)
}
[2]=>
array(2) {
[0]=>
string(12) "samueljh1_54"
[1]=>
int(1)
}
}
如果这不可能,是否有任何替代方法来存储此数据?
非常感谢,- Sam。
首先,我建议使用玩家名称作为得分值的关联键,并简化数组结构,如下所示:
$testArray = array("samueljh1_" => 3, "samueljh1_54" => 1, "samueljh1_1" => 8);
这使得数组更易于解析,并使数据结构更类似于您拥有的数据之间的关系。那么函数arsort()
就是你要找的反向排序的函数:
arsort($testArray, SORT_NUMERIC); // $testArray is passed by reference
var_dump($testArray);
产量
array(3) {
["samueljh1_1"]=>
int(8)
["samueljh1_"]=>
int(3)
["samueljh1_54"]=>
int(1)
}