sort() ,PHP 数组排序

100人浏览   2024-11-21 08:17:22

PHP 数组排序


数组中的元素可以按字母或数字顺序进行降序或升序排列。


PHP - 数组排序函数

在本章中,我们将一一介绍下列 PHP 数组排序函数:

  • sort() - 对数组进行升序排列
  • rsort() - 对数组进行降序排列
  • asort() - 根据关联数组的值,对数组进行升序排列
  • ksort() - 根据关联数组的键,对数组进行升序排列
  • arsort() - 根据关联数组的值,对数组进行降序排列
  • krsort() - 根据关联数组的键,对数组进行降序排列

sort() - 对数组进行升序排列

下面的实例将 $cars 数组中的元素按照字母升序排列:

<?php

$cars=array("Volvo","BMW","Toyota");

sort($cars);

?>

下面的实例将 $numbers 数组中的元素按照数字升序排列:

<?php

$numbers=array(4,6,2,22,11);

sort($numbers);

?>


rsort() - 对数组进行降序排列

下面的实例将 $cars 数组中的元素按照字母降序排列:

<?php

$cars=array("Volvo","BMW","Toyota");

rsort($cars);

?>

下面的实例将 $numbers 数组中的元素按照数字降序排列:

<?php

$numbers=array(4,6,2,22,11);

rsort($numbers);

?>


asort() - 根据数组的值,对数组进行升序排列

下面的实例根据数组的值,对关联数组进行升序排列:

<?php

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

asort($age);

?>


ksort() - 根据数组的键,对数组进行升序排列

下面的实例根据数组的键,对关联数组进行升序排列:

<?php

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

ksort($age);

?>


arsort() - 根据数组的值,对数组进行降序排列

下面的实例根据数组的值,对关联数组进行降序排列:

<?php

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

arsort($age);

?>


krsort() - 根据数组的键,对数组进行降序排列

下面的实例根据数组的键,对关联数组进行降序排列:

<?php

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

krsort($age);

?>


笔记

1.0:

使用 PHP 写一个冒泡排序算法:

<?php
// 从大到小排序
$numArray =array(3,2,6,5,8,10);
$numCount = count($numArray);
for($i=$numCount-1;$i>=0;$i--){
 for($j=0;$j<$i;$j++){
 if($numArray[$j]< $numArray[$j+1]){
 $aa = $numArray[$j+1];
 $numArray[$j+1]=$numArray[$j];
 $numArray[$j]=$aa;
 }
 }
}
print_r($numArray);
?>

2.0:

写两个冒泡排序:

<?php
//升序
$myArray=array(10,11,9,12,8);
for ($i=0;$i<count($myArray)-1;$i++){
 for ($j=0;$j<count($myArray)-$i-1;$j++){
 if($myArray[$j]>$myArray[$j+1]){
 //把大的往后移
 $temp=$myArray[$j];
 $myArray[$j]=$myArray[$j+1];
 $myArray[$j+1]=$temp;
 }
 }
}
print_r($myArray);
echo "<br>";
//降序
$myArray2=array(11,12,13,9,14,15);
for ($i=0;$i<count($myArray2)-1;$i++){
 for ($j=0;$j<count($myArray2)-$i-1;$j++){
 if ($myArray2[$j]<$myArray2[$j+1]){
 //把小的数往后移
 $temp=$myArray2[$j];
 $myArray2[$j]=$myArray2[$j+1];
 $myArray2[$j+1]=$temp;
 }
 }
}
print_r($myArray2);
?>

3.0:

插入排序:

<?php
$x = array(5,3,4,9,10,22,1,-2,4); 
echo "排序前数组:" . PHP_EOL;
print_r($x);
function SortInsert(array $arr)
{
 for($i=0;$i<count($arr)-1;$i++)
 for($j=$i+1;$j<count($arr);$j++)
 {
 if($arr[$j]<$arr[$i])
 {
 $temp=$arr[$j];
 $arr[$j]=$arr[$i];
 $arr[$i]=$temp;
 }
 }
 return $arr;
}
echo "排序后数组:" . PHP_EOL;
$x=SortInsert($x);
print_r($x);
?>

相关推荐