A. php 數組排序
兩個數組鍵名相同,+或是array_merge()會導致值丟失,所以只能定義一個新數組,鍵名置空,把$team_a $team_b的值傳遞過去,給二維新加一個成員,讓它等於$team_a $team_b一維的鍵名,然後排序你可以用冒泡法,根據speed從頭到尾依次依次比較相鄰的兩個元素,後面的值比前面的大,就讓它倆互換位置就可以了
如果你數據是從數庫拿出來的話,可以讓SQL在取值的時候就排序
B. 用php代碼實現將一個數組的值排列順序改為第一個數字最大,第二個數字
<?php
//自定義排序函數my_sort
functionmy_sort($arr){
rsort($arr);//從大到小排序
$new=array();
$count=count($arr);
for($i=0;$i<$count;$i++){
$new[]=$arr[$i];
if($count-$i-1>$i){
$new[]=$arr[$count-$i-1];
if($count-$i-2<=$i){
break;
}
}else{
break;
}
}
return$new;
}
$arr=array(1,3,5,7,9,2,4,6,8,10);
$new=my_sort($arr);
echo'<pre>';
print_r($arr);
print_r($new);
echo'</pre>';
exit;
C. php中有沒有把數組里的數字按從小到大排序的功能
$arr = array(1,2,3,5,6,7,8,9,10,11,12);
array_push($arr, 4);
sort($arr);
這樣就可以了
D. PHP使用array_multisort對多個數組或多維數組進行排序
PHP中array_multisort可以用來一次對多個數組進行排序,或者根據某一維或多維對多維數組進行排序。
關聯(string)鍵名保持不變,但數字鍵名會被重新索引。
輸入數組被當成一個表的列並以行來排序——這類似於
SQL
的
ORDER
BY
子句的功能。第一個數組是要排序的主要數組。數組中的行(值)比較為相同的話就按照下一個輸入數組中相應值的大小來排序,依此類推。——這句話是理解此函數用法的關鍵。
第一個參數必須是一個數組。接下來的每個參數可以是數組或者是下面列出的排序標志。
排序順序標志:
■SORT_ASC
-
按照上升順序排序
■SORT_DESC
-
按照下降順序排序
排序類型標志:
■SORT_REGULAR
-
將項目按照通常方法比較
■SORT_NUMERIC
-
將項目按照數值比較
■SORT_STRING
-
將項目按照字元串比較
每個數組之後不能指定兩個同類的排序標志。每個數組後指定的排序標志僅對該數組有效
-
在此之前為默認值
SORT_ASC
和
SORT_REGULAR。
看看兩個實際例子:
1、一次對多個數組進行排序:
復制代碼
代碼如下:
$num1
=
array(3,
5,
4,
3);
$num2
=
array(27,
50,
44,
78);
array_multisort($num1,
SORT_ASC,
$num2,
SORT_DESC);
print_r($num1);
print_r($num2);
//result:
Array
(
[0]
=>
3
[1]
=>
3
[2]
=>
4
[3]
=>
5
)
Array
(
[0]
=>
78
[1]
=>
27
[2]
=>
44
[3]
=>
50
)
2、對多維數組(以二位數組為例)進行排序:
復制代碼
代碼如下:
$arr
=
array(
'0'
=>
array(
'num1'
=>
3,
'num2'
=>
27
),
'1'
=>
array(
'num1'
=>
5,
'num2'
=>
50
),
'2'
=>
array(
'num1'
=>
4,
'num2'
=>
44
),
'3'
=>
array(
'num1'
=>
3,
'num2'
=>
78
)
);
foreach
(
$arr
as
$key
=>
$row
){
$num1[$key]
=
$row
['num1'];
$num2[$key]
=
$row
['num2'];
}
array_multisort($num1,
SORT_ASC,
$num2,
SORT_DESC,
$arr);
print_r($arr);
//result:Array([0]=>Array([num1]=>3
[num2]=>78)
[1]=>Array([num1]=>3
[num2]=>27)
[2]=>Array([num1]=>4
[num2]=>44)
[3]=>Array([num1]=>5
[num2]=>50))
總結:
這里的重點就是,先把要排序的key存到一個一維數組中,然後就可以使用array_multisort()這個函數,將數組按照key進行排序了,當然,這里的排序你完全可以不適用array_multisort()這個函數,僅僅通過foreach遍歷也能達到這個效果,但是既然php開發者給我們提供了更好的辦法,我們就可以省去不必要的麻煩了。
E. php 數組重新排序 數字鍵名key
print_r(array_values($arr));
F. php的ksort排序如果鍵值有數字和字元串怎麼排序,第二個參數怎麼弄
0
=
SORT_REGULAR
-默認。把每一項按常規順序排列(Standard
ASCII,不改變類型)。
1
=
SORT_NUMERIC
-
把每一項作為數字來處理。
2
=
SORT_STRING
-
把每一項作為字元串來處理。
3
=
SORT_LOCALE_STRING
-
把每一項作為字元串來處理,基於當前區域設置(可通過
setlocale()
進行更改)。
4
=
SORT_NATURAL
-
把每一項作為字元串來處理,使用類似
natsort()
的自然排序。
5
=
SORT_FLAG_CASE
-
可以結合(按位或)SORT_STRING
或
SORT_NATURAL
對字元串進行排序,不區分大小寫。