建议:
生成数组后,用session保存。
排序时候,在session中取出保存的数组现在你排序时候的数组是重新再生成的。不是第一次时候产生的。还有,你的$x & $y是用来做什么的呢?<html>
<head>
<title>数组显示 </title>
</head> <body>
<form action="MyPhp.php" method = "post">
<input type = "submit" value = "原数组" name ="submit_1"/>
<input type = "submit" value = "排序" name = "submit_2" />
</form> </body> </html> <?php
session_start();
function compositer()
{
$num = 10;
$start = 0;
$end = 100;
$ul_array = 0; while($ul_array <$num)
{
$a[]=rand($start,$end);
$ary=array_unique($a);
$ul_array=count($ary);
} foreach ($ary as $value)
{
echo $value.",";
}
return $ary;
} function BubbleSort($arr){
$num = count($arr);
for($i=1;$i <$num;$i++){
for($j=$num-1;$j>=$i;$j--){
if($arr[$j] <$arr[$j-1]){
$iTemp = $arr[$j-1];
$arr[$j-1] = $arr[$j];
$arr[$j] = $iTemp;
}
}
}
return $arr;
} if($_REQUEST['submit_1'])
{
global $y;
$_SESSION['arr']=compositer(); //把数组保存到session中,下一次排序时候使用
} if($_REQUEST['submit_2'])
{
$My_array = BubbleSort($_SESSION['arr']);
print_r($My_array);
}
}
?>
生成数组后,用session保存。
排序时候,在session中取出保存的数组现在你排序时候的数组是重新再生成的。不是第一次时候产生的。还有,你的$x & $y是用来做什么的呢?<html>
<head>
<title>数组显示 </title>
</head> <body>
<form action="MyPhp.php" method = "post">
<input type = "submit" value = "原数组" name ="submit_1"/>
<input type = "submit" value = "排序" name = "submit_2" />
</form> </body> </html> <?php
session_start();
function compositer()
{
$num = 10;
$start = 0;
$end = 100;
$ul_array = 0; while($ul_array <$num)
{
$a[]=rand($start,$end);
$ary=array_unique($a);
$ul_array=count($ary);
} foreach ($ary as $value)
{
echo $value.",";
}
return $ary;
} function BubbleSort($arr){
$num = count($arr);
for($i=1;$i <$num;$i++){
for($j=$num-1;$j>=$i;$j--){
if($arr[$j] <$arr[$j-1]){
$iTemp = $arr[$j-1];
$arr[$j-1] = $arr[$j];
$arr[$j] = $iTemp;
}
}
}
return $arr;
} if($_REQUEST['submit_1'])
{
global $y;
$_SESSION['arr']=compositer(); //把数组保存到session中,下一次排序时候使用
} if($_REQUEST['submit_2'])
{
$My_array = BubbleSort($_SESSION['arr']);
print_r($My_array);
}
}
?>
这个是调试好的,我这里没问题了。
你的排序函数有问题,改过了,最外成for循环多了一次:<html>
<head>
<title>数组显示 </title>
</head> <body>
<form action="MyPhp.php" method = "post">
<input type = "submit" value = "原数组" name ="sub"/>
<input type = "submit" value = "排序" name = "sub" />
</form>
<?php function compositer()
{
$num = 10;
$start = 0;
$end = 100;
$ul_array = 0; while($ul_array <$num)
{
$a[]=rand($start,$end);
$ary=array_unique($a);
$ul_array=count($ary);
} foreach ($ary as $value)
{
echo $value.",";
}
return $ary;
} function BubbleSort($arr){
$num = count($arr);
for($i=1;$i <$num-1;$i++){
for($j=$num-1;$j>=$i;$j--){
if($arr[$j] <$arr[$j-1]){
$iTemp = $arr[$j-1];
$arr[$j-1] = $arr[$j];
$arr[$j] = $iTemp;
}
}
}
return $arr;
}
if(isset($_POST['sub'])){
session_start();
if($_POST['sub']=='原数组')
$_SESSION['原数组']=compositer();
if($_POST['sub']=='排序'){
$My_array = BubbleSort($_SESSION['原数组']);
echo "原数组:<br>";
print_r($_SESSION['原数组']);
echo '<br>';
echo "排序数组:<br>";
print_r($My_array);
}
}
?>
</body>
</html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>数组显示</title>
</head> <body> <form action="arr.php" method = "post">
<input type = "submit" value = "创建原数组" name ="submit_1"/>
<input type = "submit" value = "对原数组进行排序" name = "submit_2" />
</form> </body>
</html>
<?php
function compositer() {
$num = 10;
$start = 0;
$end = 100;
$ul_array = 0;
while($ul_array <$num) {
$a[]=rand($start,$end);
$ary=array_unique($a);
$ul_array=count($ary);
}
/*
foreach ($ary as $value) {
echo $value.",";
} */
return $ary;
}function BubbleSort($arr){
$num = count($arr);
for($i=1;$i <$num;$i++){
for($j=$num-1;$j>=$i;$j--){
if($arr[$j] <$arr[$j-1]){
$iTemp = $arr[$j-1];
$arr[$j-1] = $arr[$j];
$arr[$j] = $iTemp;
}
}
}
return $arr;
} if($_REQUEST['submit_1']) {
$arr = compositer();
session_start();
session_register("arr");
$_SESSION['arr'] = $arr;
var_dump($_SESSION['arr']);
} if($_REQUEST['submit_2']) {
session_start();
$arr = $_SESSION['arr'];
var_dump($arr);
echo '<br>';
if(count($arr)>0) {
$My_array = BubbleSort($arr);
print_r($My_array);
}
}
?>
经测试没问题,返回内容如下:(感谢楼主出这道使我很感兴趣回答的问题)
array(10) { [0]=> int(47) [1]=> int(34) [2]=> int(73) [3]=> int(11) [4]=> int(3) [5]=> int(63) [6]=> int(37) [7]=> int(74) [8]=> int(70) [9]=> int(92) }
Array ( [0] => 3 [1] => 11 [2] => 34 [3] => 37 [4] => 47 [5] => 63 [6] => 70 [7] => 73 [8] => 74 [9] => 92 )