PHP组合数组并对其进行排序

时间:2015-11-30 09:13:52

标签: php arrays

我是PHP数组的新手,我有一个像这样的多维数组:$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>";
}

就是这样,我坚持把价值改变成我想要的。有人知道如何创建我想要的代码吗?

3 个答案:

答案 0 :(得分:1)

使用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>";
}
?>

答案 1 :(得分:1)

使用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>";
}
?>

答案 2 :(得分:1)

使用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)
}
相关问题