1使用PHP的排序函数对以下中的数组排序。 2.在表单上由用户输入学号,姓名和成绩这三列的数据,一共5行。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1使用PHP的排序函数对以下中的数组排序。 2.在表单上由用户输入学号,姓名和成绩这三列的数据,一共5行。相关的知识,希望对你有一定的参考价值。

将用户输入的数据组合一个二维数组,根据成绩值对二维数组进行排序,并将结果以表格形式输出。
把答案发到我邮箱610085385@qq.com,谢谢了。

<?php
echo "请输入需要排序的数据:<br>";
echo "<form method=post>";
for($i=1;$i<6;$i++)


echo"<input type='text' name='stu[]' size='5'>";
if($i<5)
echo"-";

echo"<input type='submit' name='bt' value='提交'>";
echo"</form>";
if(isset($_POST['bt']))

$temp=0;
$stu=$_POST['stu'];
$num=count($stu);
echo"您输入的数据有: <br>";
foreach ($stu as $score)

echo $score."<br>";

for($i=0;$i<$num;$i++)
for($j=$i+1;$j<$num;$j++)

if($stu[$i]>$stu[$j])

$temp=$stu[$i];
$stu[$i]=$stu[$j];
$stu[$j]=$temp;


echo "排序后的数据如图下所示: <br>";
while(list($key,$value)=each($stu))

echo $value."<br>";


?>

费了一段时间,总算完成这个作业,也算是一种锻炼吧,以下是代码,虽然感觉效率比较低,为什么不用数据库呢?

<?php

header(\'Content-type:text/html;charset=utf-8\');
//2维数组排序
function sysSortArray($ArrayData, $KeyName1, $SortOrder1 = "SORT_ASC", $SortType1 = "SORT_REGULAR")

if (!is_array($ArrayData))
return $ArrayData;


// Get args number.
$ArgCount = func_num_args();

// Get keys to sort by and put them to SortRule array.
for ($I = 1; $I < $ArgCount; $I++)
$Arg = func_get_arg($I);
if (!eregi("SORT", $Arg))
$KeyNameList[] = $Arg;
$SortRule[] = \'$\' . $Arg;
else
$SortRule[] = $Arg;



// Get the values according to the keys and put them to array.
foreach ($ArrayData as $Key => $Info)
foreach ($KeyNameList as $KeyName)
$$KeyName[$Key] = $Info[$KeyName];



// Create the eval string and eval it.
$EvalString = \'array_multisort(\' . join(",", $SortRule) . \',$ArrayData);\';
eval($EvalString);
return $ArrayData;


$keys = array(\'stu_no\',\'name\',\'price\');

//输出表格
echo "请输入需要排序的数据:<br>";
echo "<form method=post>";
echo "<table>";
echo "<tr><td>学号</td><td>姓名</td><td>成绩<td></tr>";
for ($row = 1; $row < 6; $row++)
echo "<tr>";
for ($col = 1; $col < 4; $col++)
echo "<td><input type=\'text\' name=\'stu_$row" . "_$col\' size=\'10\'></td>";

echo "</tr>";

echo "</table>";
echo "<input type=\'submit\' name=\'bt\' value=\'提交\'>";
echo "</form>";

//转换数组
if (isset($_POST[\'bt\']))
for ($row = 1; $row < 6; $row++)
for ($col = 1; $col < 4; $col++)
$key = $keys[$col-1];
$stu[$row][$key] = $_POST[\'stu_\' . $row . \'_\' . $col];

echo \'<pre>\';
print_r($stu);
echo \'</pre>\';



//排序
$temp = sysSortArray($stu,\'price\',"SORT_ASC");

echo \'<pre>\';
print_r($temp);
echo \'</pre>\'

?>
参考技术A <?php
echo "请输入需要排序的数据:";
echo "<form method=post>"; //新建表单
for($i=1;$i<6;$i++) //循环生成文本框

//文本框的名字是数组名
echo "<input type=text name='stu[]' >";

echo "<input type=submit name=bt value='提交'>"; //提交按钮
echo "</form>";
if(isset($_POST['bt']))
$sum=0;
$stu=$_POST['stu']; //取得所有文本框的值并赋予数组$stu
$num=count($stu); //计算数组$stu元素个数
echo "您输入的数据有:<br/>";
foreach($stu as $score)
echo $score."<br/>"; //输出接收的值
$sum=$sum+$score;

echo "排序后的数据为:<br/>";
function bubbleSort($arr)

// 外层循环控制需要比较的轮数
for ($i = 1, $len = count($arr); $i < $len; ++$i)
for ($j = 0; $j < $len - $i; ++$j) // 内层循环控制参与比较的元素
if ($arr[$j] > $arr[$j + 1]) // 比较相邻的两个元素
$temp = $arr[$j];
$arr[$j] = $arr[$j + 1];
$arr[$j + 1] = $temp;



return $arr;


$sort=bubbleSort($stu);
foreach ($sort as $sco)
echo $sco."<br>";


echo "5个数据和为:".$sum."<br/>";
echo "5个数据平均数为:".$sum/$num."<br/>";

?>

php之快速入门学习-11(数组排序)

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使用PHP的排序函数对以下中的数组排序。 2.在表单上由用户输入学号,姓名和成绩这三列的数据,一共5行。的主要内容,如果未能解决你的问题,请参考以下文章

PHP中的排序函数sortasortrsortkrsortksort区别分析

PHP:根据二维数组中的某个字段进行排序

PHP中的排序函数sortasortrsortkrsortksort区别分析

关于php排序函数 array_multisort 使用一个函数对另一个函数排序

php数组常用函数

在PHP中的函数内按升序对对象数组进行排序[重复]