我有一个像这样的多维数组:
$person['id'] = $value;
我的样本数据是这样的:
$person[1]=110
$person[2]=200
$person[3]=300
$person[4]=100
$person[5]=220
现在,我想按它的值对其进行排序,所以我的数组应该像这样:
$person[3]=300
$person[5]=220
$person[2]=200
$person[1]=110
$person[4]=100
在此之后,我想打印它的排序次数...所以我的结果将是这样的:
$person[3]=1
$person[5]=2
$person[2]=3
$person[1]=4
$person[4]=5
这是我的完整代码:
$person = array();
$person[1]=110;
$person[2]=200;
$person[3]=300;
$person[4]=100;
$person[5]=220;
rsort($person);
foreach($person as $x => $x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
就是这样,我坚持将值更改为我想要的值。有人知道如何创建我想要的代码吗?
使用arsort:对数组进行逆序排序并保持索引关联
<?PHP
$person = array();
$person[1]=110;
$person[2]=200;
$person[3]=300;
$person[4]=100;
$person[5]=220;
arsort($person);
$i=0;
foreach($person as &$p){
$p=++$i;
}
var_dump($person);
所以你的输出将是:
array(5) {
[3]=>
int(1)
[5]=>
int(2)
[2]=>
int(3)
[1]=>
int(4)
[4]=>
&int(5)
}
使用 php 的
asort()
方法对数组进行排序
http://php.net/manual/en/function.asort.php
<?php
$person = array();
$person[1]=110;
$person[2]=200;
$person[3]=300;
$person[4]=100;
$person[5]=220;
asort($person);
foreach($person as $x => $x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
使用
asort
代替 rsort
<?php
$person = array();
$person[1]=110;
$person[2]=200;
$person[3]=300;
$person[4]=100;
$person[5]=220;
asort($person);
foreach($person as $x => $x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>