2015-11-30 114 views
1

我在PHP數組是新的,我有一個多維數組是這樣的:$person['id'] = $value; 我的樣本數據是這樣的:PHP結合陣列和排序它

$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>"; 
} 

就是這樣,我堅持到值更改爲我想要什麼。任何人都知道如何創建我想要的代碼?

+0

看看** ASORT()** http://php.net/manual/en/function.asort.php – Calimero

+1

試試' asort' inplace'rsort' –

回答

1

使用arsort的PHP的方法,包括:排序以相反的順序陣列並保持索引協會

<?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) 
} 
+0

太棒了!完美的作品..謝謝你。 – user3608809

1

使用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

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